为什么Javac在下面的代码中忽略了我的@SuppressWarnings
注释?
@Override
@Transactional(readOnly = true, timeout = 10)
public List<Item> findAllDue() {
Query query = getSession().createQuery("from Item item where item.status = :status");
@SuppressWarnings("unchecked")
List<Item> list = query.setString("status", ItemState.MY_STRING_STATUS).list(); //This is line 43. yes, I know it can be an Enum instead
return list;
}
使用Xlint编译后,这是警告:
Warning:(43, 106) java: unchecked cast
required: java.util.List<com.company.domain.Item>
found: java.util.List
使用此警告成功构建代码。它可能并不重要,但这是Spring 4和Hibernate 4。
根据评论进行更新:
我试图针对一般情况编辑我的示例,而不是提供公司特定的代码。对于那些快速下载的人,作为支持证据:这是我的编辑器和实际代码的实际输出,使用Java 7,公司名称为redacted。
下面是终端输出,不使用编辑器,而是javac with ant:
答案 0 :(得分:1)
这是影响版本的javac错误:6u51,7u21,8。已在此处报告并修复了JDK-8016099。
其他相关报告包括:JDK-8022144和JDK-8016636,但它们都标记为与第一个重复。
这是在1.8.0u65修正的。
答案 1 :(得分:0)