具有无限参数的 Java 方法
Posted
技术标签:
【中文标题】具有无限参数的 Java 方法【英文标题】:Java method with unlimited arguments 【发布时间】:2011-11-06 18:34:07 【问题描述】:Spring 框架使用的方法可以传递任意数量的参数。
我想编写一个也可以获取无限量数据的函数。这个功能是如何命名的,以便我可以阅读它?或者我该如何定义?
【问题讨论】:
哪个类有这个方法?也许就像 static main(String[] args) 定义“无限数据量”。 【参考方案1】:它叫varargs。
它允许一个方法接受任意数量的参数。它们可以作为方法中的数组访问:
public void foo(String... args)
for (String arg : args)
// do smth with arg.
这是syntactic sugar。编译器隐藏了数组的创建,所以不是
bar.foo(new String[] "1", "2", "3");
你写
bar.foo("1", "2", "3");
【讨论】:
您的第一个链接不再有效。当前链接是docs.oracle.com/javase/8/docs/technotes/guides/language/… 私有列表要添加 Bozho 的答案,您还可以在 varargs 之前在方法中添加其他参数:
// foo(13, "foo", "bar", "baz");
// will print:
// 13 - |foo||bar||baz|
public void foo(int a, String... b)
System.out.println(a + " - ");
for (String c : b)
System.out.print("|" + c + "|");
但是你不能有不同类型的参数。这些不起作用:
public void bar(String... b, int b);
public void foo(int a, String... b, int b);
【讨论】:
以上是关于具有无限参数的 Java 方法的主要内容,如果未能解决你的问题,请参考以下文章