相关疑难解决方法(0)

为什么Java不会将int []传递给vararg?

为什么不编译?

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)

java arrays variadic-functions primitive-types

3
推荐指数
1
解决办法
2478
查看次数