为什么不编译?
public class PrimitiveVarArgs
{
public static void main(String[] args)
{
int[] ints = new int[]{1, 2, 3, 4, 5};
prints(ints);
}
void prints(int... ints)
{
for(int i : ints)
System.out.println(i);
}
}
Run Code Online (Sandbox Code Playgroud)
它抱怨第5行,说:
method prints in class PrimitiveVarArgs cannot be applied to given types;
required: int[]
found: int[]
reason: varargs mismatch; int[] cannot be converted to int
Run Code Online (Sandbox Code Playgroud)
但就我而言(和SO上的其他人所知),就像我int...一样int[].如果它是非基本类型,则可以工作String,但不是基元.
我甚至无法添加此方法:
void prints(int[] ints)
{
for(int i : ints)
System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)
因为编译器说:
name …Run Code Online (Sandbox Code Playgroud)