所以我试图在哈希表中存储一个类的实例:
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;
}
}
答案 0 :(得分:1)
您没有注释您的Hashtable。因此ref.get(val1)
会返回Object
类,并且您尝试获取的firstEdge
不是Object
类的属性。您必须初始化哈希表,如Hashtable<String, Vert> ref = new Hashtable<String, Vert>(10, 3);
或转换((Vert)ref.get(val1)).firstEdge