Чтение объекта в списке;не может быть брошено - PullRequest
0 голосов
/ 13 марта 2012

Я думаю, что в моем коде есть простая ошибка, но я не могу ее найти.

У меня есть список объектов (тип объекта), и я хочу прочитать содержимое объектов всписок.

На мой взгляд что-то вроде:

object.get(1).getTitle();

List<HtMeldungen> meldungen = q.getResultList();

List<MeldungsBean> meldungsliste = new ArrayList();
MeldungsBean mb = null;
HtMeldungen tempMeldungen = null;

int i = 0;
int k = meldungen.size() - 1;

for (i = 0; i < k; i++) {
    mb = new MeldungsBean();
    tempMeldungen = (HtMeldungen) meldungen.get(i);

    mb.setTitel(tempMeldungen.getTitle());
    mb.setAutor(tempMeldungen.getAutor());
    mb.setMeldungstext(tempMeldungen.getText());

    meldungsliste.add(mb);
}

Мой список с именем meldungen заполнен объектами типа HtMeldungen.

Я получаю ошибку:

DBEntities.classic.HtMeldungen cannot be cast to DBEntities.classic.HtMeldungen

Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 13 марта 2012

Я получу ошибку: DBEntities.classic.HtMeldungen не может быть приведен к DBEntities.classic.HtMeldungen

Поскольку сообщение об ошибке указывает на то, что объект HtMeldungen не может быть приведен к HtMeldungen (что кажется противоречивым), я думаю, что в вашей сборке этот класс может загружаться дважды. Пожалуйста, проверьте, не содержит ли ваш путь сборки один и тот же файл в сборке дважды. Это то, что обычно вызывает эту ошибку.

0 голосов
/ 13 марта 2012

Вы уверены, что q.getResultList() получает список с экземплярами HtMeldungen?Если нет, то строка

List<HtMeldungen> meldungen = q.getResultList();

- в зависимости от переключателей вашего компилятора - синтаксически верна, но список может содержать экземпляры другого класса, а затем в строке

tempMeldungen = (HtMeldungen) meldungen.get(i);

вы получаете свое исключение, потому что то, что, по мнению компилятора, должно быть экземпляром HtMeldungen, на самом деле не так.Попробуйте код

if (meldungen.get(i) instanceof HtMeldungen) {
  tempMeldungen = (HtMeldungen) meldungen.get(i);
} else {
  throw new RuntimeException("Got instance of class " + meldungen.get(i).getClass());
}

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

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