具有无限参数的java方法

y3bcpkx1  于 2021-06-29  发布在  Java
关注(0)|答案(2)|浏览(459)

spring框架使用的方法可以传递任意多个参数。
我想写一个函数,也可以采取无限量的数据。如何调用此功能,以便我可以阅读有关它的信息。或者我该如何定义它?
非常感谢。

xnifntxz

xnifntxz1#

要添加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);
kqlmhetl

kqlmhetl2#

它叫varargs。
它允许方法接受任意数量的参数。它们可以作为方法中的数组进行访问:

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

这是语法糖。编译器隐藏数组创建,因此

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

你在写什么

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

相关问题