При получении объекта происходит ошибка

Когда я извлекаю объект из хранилища данных, я получаю эту ошибку:

com.google.appengine.datanucleus.query.StreamingQueryResult нельзя отнести к com.relationship.Student '

Это мой код:

javax.jdo.Query q=pm.newQuery(Student.class);

//String fname="karthi";
q.setFilter("name == 'karthi'");
@SuppressWarnings("unchecked")
List<employee> results = (List<employee>) q.execute("[removed_email]");
Student e = (Student) results;
resp.getWriter().println(e.getName()); 
</employee></employee>

Данные хранилища имеют такие свойства и значения:

ID/Name college name
[removed_email] AMS karthi
1 ответ

Вы вызываете объект типа List объекту типа Student. Если вы явно не создали конструктор для Student который принимает в качестве аргумента List, это не сработает.

Тот факт, что вы добавили @SuppressWarnings("unchecked") говорит мне, что ваш компилятор /IDE уже предупреждал вас об этом, и вместо того, чтобы пытаться понять, почему он жаловался, вы решили, что быстрое решение будет состоять в том, чтобы в основном игнорировать проблему, злоупотребляя это аннотация.

Теперь проблема неизбежна: почему вы бросаете List Student? Никакая часть этого не имеет смысла. Действительно ли ваш код разрешает это? Как студенту нужен список сотрудников?

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

Кроме того, в будущем вы должны включить всю необходимую информацию для пользователя, который поможет вам. Обычно я прошу вас опубликовать, например, код, созданный q, в дополнение к полной трассировке стека, а не только одной строке из трассировки стека.

Удачи!

licensed under cc by-sa 3.0 with attribution.