Eclipse和未经检查的转换警告不应该存在

时间:2013-04-12 21:17:53

标签: java eclipse

获取警告的代码:

HashSet<MyBean> beanies = StatusUtil.getStatus(myBeanList);

它调用的方法:

public static HashSet<MyBean> getStatus(List<MyBean> servers){      
   HashSet<MyBean> set = new HashSet<MyBean>();
   return set;
}

是的,这是Eclipse中的确切代码。我意识到这不是大量的信息,但在我看来,代码不应该产生警告。如果有帮助,那就是Eclipse Indigo。清理项目什么都不做。重新启动Eclipse不会做任何事情。

编辑:我原本应该注意到Eclipse实际上说“类型HashSet的表达式需要未经检查的转换以符合HashSet<MyBean>”。所以它似乎意识到该方法被定义为HashSet,但没有意识到我的返回变量......

1 个答案:

答案 0 :(得分:1)

这似乎是由于Eclipse Indigo错误造成的。在Eclipse中出现错误时,我将默认工作区设置切换为使用Java 7作为编译器。我删除了所有其他可能的Java编译器,这应该强制所有项目都使用Java 7.这可以在Project->Properties->Java Compiler下找到。有一个链接显示配置Workspace Settings。此时所有单个项目 表示“合规级别”为1.7,这是我的预期。但是,在我的答案中,上面说的错误并没有消失,直到我选中“启用项目特定设置”并将其设置为Java 7.我认为这是一个错误,因为如果只有一个可用的编译器我将其设置为我的工作区默认值编译器,我的项目没有启用项目特定设置,然后显然应该使用该编译器。但是,启用项目特定设置会使上述警告消息消失。