Java - HashMap<Integer, ? extends mySuperclass>();
Java - HashMap<Integer, ? extends mySuperclass>();
我如何创建一个 HashMap,将 Integer
或 int
映射到扩展指定 Class 的 class 的 class 实例:
public HashMap<Integer, ? extends myClass> myMap = new HashMap<Integer, ? extends myClass>();
这给出了一个错误:Cannot instantiate the type HashMap<Integer,? extends mySuperclass>
(通过 Eclipse)
我对 Java 不太了解,非常感谢您的回答。为了使这一点更加明显,这是一张简短的图片,解释了我想要实现的目标:
Click this link to see the image.
尝试添加不扩展 Superclass 的 class 应该不起作用。
如果有人问过这个问题,我真的很抱歉,但我尝试搜索了几个术语,但找不到类似的问题。 one 非常相似,但我不明白接受的答案说的是什么,我什至认为这不是我在这里问的问题。
这真的只是一个
public HashMap<Integer, myClass> myMap = new HashMap<Integer, myClass>();
它将根据要求接受 myClass 的子类型。
您不需要使用 ?
。除非在极少数(通常是奇怪的)情况下,否则不会那样使用泛型。
class MyClass {
}
class MyExtendedClass extends MyClass {
}
public void test() {
Map<Integer, MyClass> myMap = new HashMap<Integer, MyClass>();
myMap.put(1, new MyClass());
myMap.put(2, new MyExtendedClass());
}
尝试:
public HashMap<Integer, myClass> myMap = new HashMap<Integer,myClass>();
我如何创建一个 HashMap,将 Integer
或 int
映射到扩展指定 Class 的 class 的 class 实例:
public HashMap<Integer, ? extends myClass> myMap = new HashMap<Integer, ? extends myClass>();
这给出了一个错误:Cannot instantiate the type HashMap<Integer,? extends mySuperclass>
(通过 Eclipse)
我对 Java 不太了解,非常感谢您的回答。为了使这一点更加明显,这是一张简短的图片,解释了我想要实现的目标: Click this link to see the image.
尝试添加不扩展 Superclass 的 class 应该不起作用。
如果有人问过这个问题,我真的很抱歉,但我尝试搜索了几个术语,但找不到类似的问题。 one 非常相似,但我不明白接受的答案说的是什么,我什至认为这不是我在这里问的问题。
这真的只是一个
public HashMap<Integer, myClass> myMap = new HashMap<Integer, myClass>();
它将根据要求接受 myClass 的子类型。
您不需要使用 ?
。除非在极少数(通常是奇怪的)情况下,否则不会那样使用泛型。
class MyClass {
}
class MyExtendedClass extends MyClass {
}
public void test() {
Map<Integer, MyClass> myMap = new HashMap<Integer, MyClass>();
myMap.put(1, new MyClass());
myMap.put(2, new MyExtendedClass());
}
尝试:
public HashMap<Integer, myClass> myMap = new HashMap<Integer,myClass>();