小编典典

使用Arrays.asList将基本数组转换为List

java

我有这个:

import java.util.Arrays;
import java.util.ArrayList;
public class Test1 {

    public static void main(String[] args) {

      double[] a = new double[2];

      for( double d : Arrays.asList(a)) 
            System.out.println(d); 
  }

}

输出:

$ javac Test1.java 
Test1.java:9: error: incompatible types
      for( double d : Arrays.asList(a)) 
                                   ^
  required: double
  found:    double[]
1 error

为什么我在这里出错?

错误的含义是什么? 它告诉我什么?


阅读 242

收藏
2020-11-30

共1个答案

小编典典

您在这里遇到错误,是因为当您使用接受varargs的函数时,此函数在幕后创建了您在其中传递的对象的新数组。因此,Arrays.asList(1,2,3)实际上得到
了一个整数数组
当您传递整数 数组时,请 在后台Arrays.asList()创建 一个 整数 数组数组 。这就是为什么您不能通过以下循环对其进行迭代:

for( double d : Arrays.asList(a))

尝试像这样更改它:

for(double[] d : Arrays.asList(a))

d实际上,您将看到对传递给Arrays.asList()- 的数组的引用a

2020-11-30