2015-11-13 4 views
1

У меня есть этот код:Как избежать: «Выражения из списка типов необходимо беспрепятственное преобразование, чтобы соответствовать ..»

List<Book> bookList = session.createCriteria(Book.class) 
       .add(Restrictions.like("name", "%i%")).list(); 

Но, у меня есть уведомление, которое говорит: «Тип безопасность: Выражение типа List необходимо безотлагательное преобразование, чтобы соответствовать списку «

Как я могу исправить свой код для удаления этого предупреждения?

+0

Я думаю, это потому, что 'list()' возвращает необработанный список. –

ответ

-2

добавить это выше линии или в верхней части метода заголовка:

@SuppressWarnings("unchecked") 
List<Book> bookList = session.createCriteria(Book.class) 
      .add(Restrictions.like("name", "%i%")).list(); 

или для всего метода:

@SuppressWarnings("unchecked") 
public void doSomething(){ 

в списке случае() будет ваша собственная реализация вы могли бы определить результат, как это:

private List<Book> list(){ 
    return new ArrayList<Book>(); 
    } 

то annotation не является необходимым и вы га ve a checked conversion, управляемый компилятором.

+1

ahha спасибо, чувак @Stefan Beike – Dwhitz

+0

Это может привести к тому, что предупреждение исчезнет, ​​но там все еще есть непроверенная конверсия. Лучше исправить «list()», если это возможно. –

+0

Да, я упомянул, что в моем редакторе –