在该范围内如何表达HashMap声明?它应该是:
HashMap<String, ArrayList> dictMap
如果不是,则假定为对象。
例如,如果您的代码是:
HashMap dictMap = new HashMap<String, ArrayList>();...ArrayList current = dictMap.get(dictCode);
那不管用。相反,您想要:
HashMap<String, ArrayList> dictMap = new HashMap<String, Arraylist>();...ArrayList current = dictMap.get(dictCode);
泛型的工作方式是类型信息对编译器可用,但在运行时不可用。这称为类型擦除。HashMap的实现(或任何其他泛型实现)正在处理Object。类型信息在编译期间用于类型安全检查。请参阅泛型文档。
还要注意,
ArrayList它也被实现为通用类,因此您可能还需要在其中指定一个类型。假设您
ArrayList的课程包含
MyClass,则上面的行可能是:
HashMap<String, ArrayList<MyClass>> dictMap



