具有无限参数的Java方法

spring框架使用的方法,你可以传递尽可能多的参数,只要你喜欢。

我想写一个函数,也可以采取无限量的数据。 这个function是如何调用的,以便我可以阅读它。 或者我怎么定义它?

非常感谢。

这叫做可变参数 。

它允许一个方法采取任何数量的参数。 它们可以在方法中作为数组访问:

public void foo(String... args) { for (String arg : args) { // do smth with arg. } } 

这是句法糖 。 编译器隐藏了数组的创build,所以不是

  bar.foo(new String[] {"1", "2", "3"}); 

你写

  bar.foo("1", "2", "3"); 

要添加Bozho的答案,您可以在可变参数之前在您的方法中使用其他参数:

 // 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 + "|"); } } 

但是,你不能有一个不同types的参数。 这些不起作用:

 public void bar(String... b, int b); public void foo(int a, String... b, int b);