Java哈希表链表



嗨,由于某种原因,我有以下代码,它抛出了一个类型错误:Expected String, Actual Object。它是一个包含string键和linkedlist<string>值的哈希表。

当迭代这些linkedlist时,我无法将它们的值设置为string变量。我已经习惯了getClass()方法来确保它返回的是string类。我很困惑,如果有任何帮助,我将不胜感激。

Enumeration t = Scope.keys();
String temp_string;
String temp_string2;
LinkedList temp_linkedlist;
while (t.hasMoreElements())
{
temp_string = (String)t.nextElement();
temp_linkedlist = (LinkedList)Scope.get(temp_string);
for(int num=0; num<temp_linkedlist.size(); num++)
{
//Prints out string from linked list  
System.out.println(temp_linkedlist.get(num).getClass());
//throws error 
temp_string2 = temp_linkedlist.get(num);
}
}

不使用泛型时,列表中的所有元素对编译器来说都是Object的。

要使代码正常工作,同时将泛型排除在等式之外,请尝试以下操作:

temp_string2 = (String)temp_linkedlist.get(num);

getClass((之所以给您一个String,是因为它是在运行时计算的,而不是在编译时计算的。

最新更新