2015-11-13 32 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

是的,我提到在我编辑 –

相关问题