public class SuperVertex extends Vertex{
int childAttr = 1;
}
public class Vertex {
int name = 0;
}
public class Test {
SuperVertex sv = new SuperVertex();
Vertex v = new Vertex();
HashMap<Vertex, Vertex> hmp = new HashMap<Vertex, Vertex>();
hmp.put(v,v);
hmp.put(sv,sv);
hmp.get(v).name //works
hmp.get(sv).name //works
hmp.get(sv).childAttr //doesn't work
}
如上面的代码所示,我无法访问 childAttribute,因为我从 HashMap 获取了父类型对象。如何创建一个同时包含 Parent 和 Child 类型对象的 HashMap 并访问 Child 对象属性?
最佳答案
(SuperVertex)hmp.get(sv).childAttr//works
转换为正确的类型可以解决问题。感谢@Miguel Gamboa 和@nolexa。
关于java - 如何从包含父类作为 Java 条目集的 hashMap 获取子类属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35343605/