После преобразования List в Set, улучшенный цикл for создает исключение ClassCastException - PullRequest
0 голосов
/ 16 июня 2011

У меня проблема после преобразования List<MyCustomObject> в HashSet<MyCustomObject>. Когда я пытаюсь перебрать каждый элемент, используя расширенный for, я получаю ClassCastException, в котором говорится, что «java.util.HashMap не может быть приведен к MyCustomObject».

Вот код:

    List<MyCustomObject> myList = remoteMethod.getList();//the list is obtained via a REST call so it does go through the serialize/deserialize process...
    Set<MyCustomObject> mySet = new HashSet<MyCustomObject>(myList); 
    for(MyCustomObject object : mySet) <----this is where it goes boooom!!! 
        {
            DB.add(object);
        }

Таким образом, до расширенного оператора for я извлек первый объект в списке и использовал .getClass, и он DID появился как HashMap. Что-то происходит во время сериализации / десериализации? Или это в преобразовании List в Set? Что может быть не так, и как я могу это исправить?

1 Ответ

4 голосов
/ 16 июня 2011

Все, что помещает данные в List, возвращаемое remoteMethod.getList(), вкладывает в них HashMap с вместо MyCustomObject с.Вы должны изменить его на MyCustomObject s в List.

Содержимое списка не гарантировано , чтобы быть MyCustomObject экземплярами во время выполнения и это, вероятно, и создает вашу путаницу.

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