我开始尝试通过减少为一些测试用例准备输入的代码量来研究这个问题。我看到很多人在努力使用 Arrays.asList() 来包含高级和新功能,但下面的代码是由于其简单性而被选择的:
List<Integer> numbers = Arrays.asList(new Integer[]{1, 2 ,3, 4, 5, 4, 3, 2, 1, 3, 4});
List<String> names = Arrays.asList(new String[]{"Jhon", "Lucas", "Daniel", "Jim", "Sam"});
List<Character> letters = Arrays.asList(new Character[]{'A', 'B', 'K', 'J', 'F'});
请注意,匿名数组示例仅适用于
非基本类型的数组,因为API使用了泛型,这就是为什么您可以看到周围有几个两行示例的原因,更多信息请参见:
为什么Java泛型不支持基本类型?
对于较新的JDK,还有另一个更简单的选项,下面的示例与上面显示的示例等效:
//Integer
List<Integer> numbers = Arrays.asList(1, 2 ,3, 4, 5, 4, 3, 2, 1, 3, 4);
//String
List<String> names = Arrays.asList("Jhon", "Lucas", "Daniel", "Jim", "Sam");
//Character
List<Character> letters = Arrays.asList('A', 'B', 'K', 'J', 'F');
Arrays.asList(new int[] { 1, 2, 3 })
;在Java 1.4.2中绝对无法编译通过,因为一个int[]
不是一个Object[]
。请注意,这里的关键问题是int[]
和Object[]
之间的转换。 - Joachim SauerArrays.asList
代码就可以正常工作了。 - Horse Voice