相关疑难解决方法(0)

通用列表数组

我正在使用Generic和数组,看起来下面的代码编译得很好,

ArrayList<Key> a = new ArrayList<Key>();
Run Code Online (Sandbox Code Playgroud)

但是编译器抱怨这个,

ArrayList<Key>[] a = new ArrayList<Key>[10];
Run Code Online (Sandbox Code Playgroud)

通过阅读stackoverflow中的帖子,我有点明白,这是由于类型擦除,我可以通过使用,修复它,

ArrayList<Key>[] a = (ArrayList<Key> []) new ArrayList[10];
Run Code Online (Sandbox Code Playgroud)

或列表清单

ArrayList<ArrayList<Key>> b = new ArrayList<ArrayList<Key>>();
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚幕后的原因.特别是,为什么第二个是非法的,因为第一个是非常好的.为什么编译器不会抱怨列表列表.

java generics

31
推荐指数
2
解决办法
2万
查看次数

标签 统计

generics ×1

java ×1