通用列表数组
我正在使用Generic和数组,看起来下面的代码编译得很好,
ArrayList<Key> a = new ArrayList<Key>();
但是编译器抱怨这个,
ArrayList<Key>[] a = new ArrayList<Key>[10];
通过阅读stackoverflow中的帖子,我有点明白,这是由于类型擦除,我可以通过使用,修复它,
ArrayList<Key>[] a = (ArrayList<Key> []) new ArrayList[10];
或列表清单
ArrayList<ArrayList<Key>> b = new ArrayList<ArrayList<Key>>();
但我无法弄清楚幕后的原因。特别是,为什么第二个是非法的,因为第一个是非常好的。为什么编译器不会抱怨列表列表。
Smart猫小萌
相关分类