我可以使用泛型声明 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对象)而不是数组。

09-16 05:00