【发布时间】:2010-05-12 02:48:18
【问题描述】:
根据标题,我正在努力寻找某些代码中“未经检查或不安全操作”警告的原因。
如果我有以下代码,它会在没有任何警告的情况下编译:
public void test()
{
Set<String> mySet = new HashSet<String>();
Set<String> myNewSet = mySet;
//do stuff
}
现在,如果我更改 mySet 的来源,特别是作为方法调用的结果,我会收到“unchecked yadda yadda”警告:
public void test()
{
Set<String> myNewSet = this.getSet();
//do stuff
}
public Set getSet()
{
Set<String> set = new HashSet<String>();
return set;
}
我已经尝试并试图找出问题所在,但我完全被难住了。无论我使用集合还是列表,问题都存在。为什么 getSet 方法返回的 Set 与第一个例子中的 Set 有什么不同?
任何帮助都将不胜感激,因为虽然警告不是世界末日,但它却让我心烦意乱! :(
问候
【问题讨论】:
-
你(毫无疑问是意外地)使用了原始的
Set类型;见stackoverflow.com/questions/2770321/…