具有无限参数的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);