【问题标题】:The method asList(T[]) in the type Arrays is not applicable for the arguments (int, int)Arrays 类型中的方法 asList(T[]) 不适用于参数 (int, int)
【发布时间】: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 之前的源级别因此不支持自动装箱、可变参数和泛型,因此编译器会抱怨。为什么要限制源级别?

标签: java arrays list


【解决方案1】:

我认为你需要将一个数组作为 asList 的参数。 喜欢:

int[] data = {1,2,3,4,5};
List list = Arrays.asList(data);

【讨论】:

    【解决方案2】:

    万一其他人遇到类似的问题,我发现我遇到了这个错误,因为我正在导入 edu.emory.mathcs.backport.java.util.Arrays; 代替 java.util.Arrays;

    【讨论】:

    • 不错的观察。谢谢。
    • 我登录后对此表示赞同,因为我正在导入一个断言包。这个答案救了我,谢谢!
    • 在我的情况下是 import org.assertj.core.util.Arrays; 而不是 java.util.Arrays 但您的回答为我指明了正确的方向,谢谢!
    【解决方案3】:

    我遇到了同样的问题,比如错误导入org.javers.common.collection.arrays 所以删除了那个并从 Utils Arrays 中导入了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      相关资源
      最近更新 更多