簡體   English   中英

在哈希表中存儲和檢索類的實例

[英]storing and retrieving an instance of a class in a 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;   
    }
}

您沒有在注釋您的哈希表。 因此, ref.get(val1)返回一個Object類,而您試圖獲取firstEdge ,它不是Object類的屬性。 您要么必須像Hashtable<String, Vert> ref = new Hashtable<String, Vert>(10, 3);那樣初始化您的哈希表Hashtable<String, Vert> ref = new Hashtable<String, Vert>(10, 3); ((Vert)ref.get(val1)).firstEdge

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM