java - 如何从包含父类作为 Java 条目集的 hashMap 获取子类属性?

标签 java

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/

相关文章:

java - 如何在 Android Lollipop 中使用 WebView 上传文件?

java - Android:可以同时拍照或录像吗?

java - Struts2 + Log4j2

java - 无法使用 DocumentBuilder 解析 XML 文件

java - Websocket 与 Spring mvc、stomp、sockjs、Angular JS

java - XQUERY JAVA 不工作

java - Java中的 "(Object)null"和 "null"有什么区别?

java - 确保 Entity 有一个非私有(private)的构造函数

java - 如何将所需格式的值传递给 @RequestParam 中的 Date 对象?

java - Camel ActiveMq 蓝图