作者:伊利纯羊毛 | 来源:互联网 | 2022-11-23 13:00
1> caco3..:
不幸的是,不可能以干净的方式解决此问题。
干净的解决方案是创建通用数组,但由于类型擦除而无法实现。
为什么禁止通用数组创建?
考虑下面的数组示例:
Object[] arr = new String[1];
arr[0] = 10;
结果是ArrayStoreException
。
现在想象一下,允许创建通用数组:
Map[] map = new Map<>[1]; // This is illegal
Object[] objects = map;
objects[0] = new HashMap(); // No ArrayStoreException
编译器警告说,任何人Map
都不能将其放入数组,编译器或运行时都不能检查它。因此,警告
解决方法?
引用您可以使用的Java泛型常见问题解答:
原始类型数组
无界通配符参数化类型的数组
集合而不是数组
我个人强烈建议您考虑使用List
:
List