Java Arrrays.asList 问题

Java Arrrays.asList issue

我尝试在字符数组上使用 Arrays.asList() 方法,如下所示,

char[] array = "programming".toCharArray();
for (Character li : Arrays.asList(array)) {
  System.out.println(li);
}

但是出现编译时错误。 这里 Array.asList 向我返回一个字符数组数组,如下所示

for (char[] li : Arrays.asList(array)) {
    System.out.println(li);
}

我所知道的是,Arrays.asList() 方法将数组的每个元素转换为 List 中的一个元素。 但是这里发生了什么? 任何人都可以帮助我理解这一点吗?

Arrays.asList() 将每个引用类型元素转换为列表中的一个元素。因此,如果您传递一个基元数组,您将得到一个列表,其中包含一个元素,其类型是您传递给它的数组的类型。

如果您传递 Character[] 数组而不是 char[] 数组,您将得到一个 List<Character> 包含输入数组的所有元素作为单独的元素。

Arrays.asList 的签名是 - public static <T> List<T> asList(T... a)。由于泛型类型参数必须是引用类型,因此传递原始数组被视为传递单个元素(其类型为数组类型),这将导致列表具有单个数组元素。