在哈希表中存储和检索类的实例

时间:2014-08-07 09:25:46

标签: java hashtable

所以我试图在哈希表中存储一个类的实例:

 public void insertEdge(String val1, String val2, int len) {
       Hashtable ref = new Hashtable(10, 3); 

       if(!ref.containsKey(val2))
       {
           Vert temp = new Vert(val2);
            ref.put(val2, temp);
           curNod++;
       }

       ref.get(val1).firstEdge = new Edge(ref.get(val2), ref.get(val1).firstEdge, len);
}

当我运行上面的程序时,编译器返回以下错误:

error: cannot find symbol

       ref.get(val1).firstEdge = new Edge(ref.get(val2), ref.get(val1).firstEdge, len);

我还在学习哈希表,所以请轻松一点。 从我的理解你应该能够在哈希表中存储一个类的实例并检索它,firstEdge是我的类Vert的变量所以我理论上我应该能够在没有它的情况下检索它一个问题!

这是Vert

class Vert {
   public Edge firstEdge;
    public String name; 

   public Vert() {
      firstEdge = null;

   }

    public Vert(String n)
    {
        firstEdge = null;
        name = n;   
    }
}

1 个答案:

答案 0 :(得分:1)

您没有注释您的Hashtable。因此ref.get(val1)会返回Object类,并且您尝试获取的firstEdge不是Object类的属性。您必须初始化哈希表,如Hashtable<String, Vert> ref = new Hashtable<String, Vert>(10, 3);或转换((Vert)ref.get(val1)).firstEdge