Java Hashtable связанный список - PullRequest
0 голосов
/ 30 ноября 2018

Привет У меня есть следующий код по какой-то причине, он выдает ошибку типа: 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);
    }
}

1 Ответ

0 голосов
/ 30 ноября 2018

Когда не используются обобщенные элементы, все элементы в списке считаются Object для компилятора.

Чтобы заставить ваш код работать, сохраняя обобщенные значения вне уравнения, попробуйте следующее:

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

Причина, по которой getClass () дает вам строку, заключается в том, что она вычисляется во время выполнения, а не во время компиляции.

...