我有以下简单的测试用例
@Test
public void testArraysAsList() {
Character[] chars1 = new Character[]{'a', 'b'};
System.out.println(Arrays.asList(chars1).size());
char[] chars2 = new char[]{'a', 'b'};
System.out.println(Arrays.asList(chars2).size());
}
Run Code Online (Sandbox Code Playgroud)
结果是:2 1
我不明白Arrays.asList(chars2),为什么要Arrays.asList(char[])制作一个单一的列表,元素为char [].
正如@Andy所解释的那样,泛型只适用于引用类型.这意味着List<char>不允许(因此Arrays.asList无法返回List<char>).而是Arrays.asList将其输入解释为单个对象,并返回包含该单个元素的列表.
Character[] chars1 = new Character[]{'a', 'b'};
List<Character> list1 = Arrays.asList(chars1);
char[] chars2 = new char[]{'a', 'b'};
List<char[]> list2 = Arrays.asList(chars2);
Run Code Online (Sandbox Code Playgroud)
Arrays.asList(chars2)与此String示例比较(输入也是单个元素):
String test = "test";
List<String> asList = Arrays.asList(test);
Run Code Online (Sandbox Code Playgroud)
返回size()== 1的列表
| 归档时间: |
|
| 查看次数: |
1084 次 |
| 最近记录: |