Iterator.next () возвращаемый тип в Java? - PullRequest
0 голосов
/ 10 октября 2018

Я получаю ошибку в приведенном ниже коде:

Class ABC{
  public <T extends Object> void process(Entity entity){
  List<T> list = entity.getList();
    Iterator<T> iterator = list.iterator();
    while(iterator.hasNext()){
        T currentItem = iterator.next();
        processCurrentItem();
    }
   }
}

Ошибка при выполнении iterator.next (): java.util.LinkedHashMap не может быть приведен к объекту

Мой вопрос, это проблема, характерная для моего варианта использования, или я не понимаю, как использовать хэш-карту и привести ее к объекту по моему выбору?

1 Ответ

0 голосов
/ 10 октября 2018

Проблема (как пояснено в комментариях) заключается в том, что существует импорт класса с именем Object, который не является значением по умолчанию (java.lang.Object).Поэтому T extends Object интерпретируется как «класс, расширяющий этот пользовательский Object класс», а java.util.LinkedHashMap этого не делает.

Решение будет состоять в том, чтобы удалить импорт, если вы намеревались использовать значение по умолчанию.java.lang.Object.Если вам нужен пользовательский класс Object, вместо этого вы можете изменить <T extends Object> на <T extends java.lang.Object> или просто <T>, поскольку extends java.lang.Object является значением по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...