【发布时间】:2017-09-06 14:21:25
【问题描述】:
我在 eclipse kepler 上使用 jdk1.8.0_121(我的操作系统是 windows 7),我创建了一个简单的项目,其中包含一个带有静态 main 方法的类。
当我尝试创建如下列表时
List l = Arrays.asList(1,2);
我收到了这个错误:
Arrays 类型中的方法 asList(T[]) 不适用于 参数(int,int)。
【问题讨论】:
-
1,2不是数组。它是 2 个单独的整数 -
这似乎是类型推断和自动装箱的问题。
Arrays.<Integer>asList( 1, 2 )会起作用吗? -
但是 'List l = Arrays.asList(1,2)' 它适用于 jdk1.7
-
@AmalAbidi 那么你的问题可能不在于 Java 8,而是你的目标是错误的 Java 版本。确保您的项目已正确设置为使用 Java 8 运行。
-
" 参数化类型仅在源级别为 1.5 或更高版本时可用" - 这似乎是问题所在:您使用 Java 8 构建但将编译器限制为 Java 5 之前的源级别因此不支持自动装箱、可变参数和泛型,因此编译器会抱怨。为什么要限制源级别?