我想要定义我的第一个泛型类。我想要它扩展一个HashMap。 它是一个LinkedHashMap,键是泛型类型,值也是泛型类型的ArrayList。初始化泛型类
构建此类的实例是可以的。然而,当我要添加值,那么编译器说
incompatible types: String cannot be converted to T_KEY
addMapValue("first", new Integer(2));
where T_KEY is a type-variable:
T_KEY extends Object declared in class FormattedMap
我想这可能是由于这样的事实,我的变量T_KEY和T_VALUE不会被初始化? 如何初始化它们?
这里是我的类:
public class FormattedMap<T_KEY, T_VALUE> extends LinkedHashMap<T_KEY, ArrayList<T_VALUE>> {
private T_KEY mapKey;
private T_VALUE mapValue;
public boolean DEBUG=false;
public FormattedMap() {
super();
}
public void addMapValue(T_KEY key, T_VALUE value) {
}
public void removeMapValue(T_KEY key, T_VALUE value) {
}
public void test(boolean b) {
addMapValue("first", new Integer(2)); // This triggers the compilor error message
}
public static void main(String [] args) {
FormattedMap<String, Integer> fm = new FormattedMap<>(); // This is fine
fm.test(true);
}
}
非常感谢!事情现在更清晰了。当然,现在我可以看到我的test()方法没有任何意义。 – kaligne