java - 当列表类型不同时,Java 列表数组工作
问题描述
我有以下代码工作,但我不确定它为什么不抛出异常:
List[] x=new ArrayList[2];
x[0]=new ArrayList<Integer>();
x[1]=new ArrayList<String>();
x[0].add("test");
x[1].add(5);
System.out.println(x[0]);
System.out.println(x[1]);
这打印:
[test]
[5]
x[0]
是整数数组,它添加字符串没有任何问题。x[1]
是字符串数组,它添加整数没有任何问题。
这是如何运作的?
解决方案
首先,这与数组无关。以下展示了相同的行为:
List x = new ArrayList();
x = new ArrayList<Integer>();
x.add("test");
System.out.println(x);
其行为方式的关键原因x
是声明为具有原始 List
类型。有关全面的讨论,请参阅什么是原始类型以及我们为什么不应该使用它?
推荐阅读
- android - 根据preference change listener改变android view model的查询参数
- swift - Swift 使用 ObjectMapper
- c# - C#:抛出异常列表的值不能为空
- javascript - 正则表达式在键入时验证数字
- bash - 尝试在 awk 中执行 unix 命令但收到错误
- c# - C# .NET 读取所有进程的问题
- firebase - 如何获取用于 Firebase Firestore 配置的 googleappid?
- sql-server - T-SQL 最大权重查询
- typescript - 使用数组 reduce 方法使用条件类型和映射类型
- java - javax.management.InstanceAlreadyExistsException: com.zaxxer.hikari:name=dataSource,type=HikariDataSource