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

2022-09-01 01:28:10

我有以下代码

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

    List<Integer> list = Arrays.asList(A);

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

解决方案.java:11: 错误: 不兼容的类型: 推理变量 T 具有不兼容的边界 列表列表 = 数组.asList(A);^ 相等约束: 整数下限: int[] 其中 T 是类型变量: T 扩展 在方法 asList(T...) 中声明的对象

我假设这是Java 8功能,但我不确定如何解决该错误


答案 1

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

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


答案 2

在Java 8中,你可以做

List<Integer> list = IntStream.of(a).boxed().collect(Collectors.toList());

推荐