我搬到了一台新机器,它有最新的Sun Java编译器,并注意到现有Java 6代码中的一些警告。 Eclipse IDE建议我使用以下命令注释赋值:
@SuppressWarnings("rawtypes")
例如:
class Foo<T> {
...
}
...
@SuppressWarnings("rawtypes")
Foo foo = new Foo();
当我使用较旧的编译器(JDK 1.6.0_20)移回机器时,我注意到这个较旧的编译器现在警告抑制“rawtypes”警告,声称这种抑制不受支持并建议更换它与@SuppressWarnings(“未选中”)。此外,默认情况下,有些地方最新的编译器让我把“未经检查”和“原型”放在一起 - 用旧的编译器编译代码会再现相同的警告。
如何在两者之间强制执行向后/向前兼容性,以便两个编译器都不会产生警告?
答案 0 :(得分:43)
答案 1 :(得分:4)
请注意,Eclipse 3.5不了解rawtypes并标记警告以切换到未选中状态。令人沮丧的是,Eclipse提出了rawtypes注释,它导致的问题多于解决问题。他们应该坚持使用标准的。