2015-11-13 34 views
1

我有這樣的代碼:如何避免:「類型列表中表達選中需要轉換成符合。」

List<Book> bookList = session.createCriteria(Book.class) 
       .add(Restrictions.like("name", "%i%")).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是沒有必要和你哈編譯器控制着一個checked conversion

+1

ahha謝謝你,夥計@Stefan Beike – Dwhitz

+0

它可能會使警告消失,但仍然存在未經檢查的轉換。如果可能,最好修復list()。 –

+0

是的,我提到在我編輯 –

相關問題