Использование @SuppressWarnings
везде, как было предложено, является хорошим способом сделать это, хотя при этом каждый раз вы вызываете q.list()
. 'd suggest:
Collections.checkedList()
Замените свое назначение следующим образом:
List cats = Collections.checkedList(q.list(), Cat.class);
Вы можете проверить javadoc для этого метода , особенно в отношении equals
и hashCode
.
Напишите хэндл-бросок
Просто рефакторируйте все ваши @SuppressWarnings
в одном месте:
List cats = MyHibernateUtils.listAndCast(q);
...
public static List listAndCast(Query q) {
@SuppressWarnings("unchecked")
List list = q.list();
return list;
}
Предотвратить появление Eclipse для предупреждений о неизбежных проблемах
В Eclipse перейдите в «Окно»> «Настройки»> «Java»> «Компилятор»> «Ошибки / предупреждения» и в «Тип общего типа» установите флажок Ignore unavoidable generic type problems due to raw APIs
Это отключит ненужные предупреждения для подобных проблем, подобных описанным выше, которые неизбежны.
Некоторые комментарии:
Query
вместо результата q.list()
, потому что таким образом этот метод «обмана» может использоваться только для обмана с помощью Hibernate, а не для обмана любого List
i n. .iterate()
и т. д. кнопка, которая не работает
Запустите приложение, используя xcode, используйте Xcode «Debug View Hierarchy»
эта кнопка или ее суперпредставление может быть .userInteractionEnabled = false
Я предполагаю, что ваше анимированное изображение является суперпредставлением, и по умолчанию изображение отключает взаимодействие с пользователем
, добавьте это xxImage.userInteractionEnabled = true