我可以使用泛型声明 map 数组来指定 map 类型:
private Map<String, Integer>[] myMaps;
但是,我不知道如何正确实例化它:
myMaps = new HashMap<String, Integer>[count]; // gives "generic array creation" error
myMaps = new HashMap[count]; // gives an "unchecked or unsafe operation" warning
myMaps = (Map<String, Integer>[])new HashMap[count]; // also gives warning
如何在不出现编译器错误或警告的情况下实例化此映射数组?
更新:
谢谢大家的回复。我最终选择了List建议。
最佳答案
您不能安全地创建通用数组。有效的Java 2nd Edition在chapter on Generics中进行了详细介绍。从第119页的最后一段开始:
因为数组和泛型不能很好地结合(以及其他原因),所以通常最好使用Collection
对象(特别是List
对象)而不是数组。