如何在Java中使用Varargs?

J.P*_*J.P 3 java casting variadic-functions

我现在正在学习java中的Varargs.我写了这个方法:

 public static void vrati(Object... arguments){
    for(Object i : arguments)

    System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)

然后我打电话给方法:

 main.vrati(8,2,"String");
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:varargs是否将原始类型转换为对象?因为我在这个方法调用中混合了int和String,并且可以像一个对象一样访问它们.

Pet*_*rey 8

所以我的问题是varargs将原始类型转换为对象吗?

它转换为数组的类型.如果你有

a(int... ints)
Run Code Online (Sandbox Code Playgroud)

他们会 int

如果你有

b(double... doubles)
Run Code Online (Sandbox Code Playgroud)

即使你写作,他们也将是双打的 b (1, 2.0f, 10L)

如果你有

c(Object... obj)
Run Code Online (Sandbox Code Playgroud)

它将autobox原语.这不是var-args的一个特性,但无论如何都要根据需要对类型进行自动装箱.