不兼容的类型:推理变量T具有不兼容的边界

PDS*_*tat 22 java java-8

我有以下代码

public int solution(int X, int[] A) {

    List<Integer> list = Arrays.asList(A);
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它抛出了以下编译错误

Solution.java:11:错误:不兼容的类型:推理变量T具有不兼容的边界List list = Arrays.asList(A); ^等式约束:整数下限:int []其中T是一个类型变量:T扩展方法asList(T ...)中声明的Object

我假设这是一个Java 8功能,但我不知道如何解决该错误

tob*_*s_k 33

Arrays.asList期待可变数量的Object.int不是Object,但是int[],因此Arrays.asList(A)将创建一个List<int[]>只有一个元素.

您可以使用 IntStream.of(A).boxed().collect(Collectors.toList());


Pet*_*rey 7

在Java 8中,您可以执行

List<Integer> list = IntStream.of(a).boxed().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)