我试图在我的代码中抑制警告的实例。我使用intellij功能alt-enter将抑制警告注释添加到方法中,也尝试使用该类。但每当我点击重建按钮时,警告就会一直显示,就好像抑制警告注释未被识别一样。
我已经阅读了一些建议完全禁用的答案,或者您可以使用此表示法来抑制个人输入。我知道我可以通过设置完全禁用它,但我只是压制这个实例。有谁知道为什么它不能抑制警告?
Information:Using Eclipse compiler to compile java sources
Information:Compilation completed successfully with 1 warning in 9 sec
Information:0 errors
Information:1 warning
...TagValidator.java
Warning:(41, 16) java: Type safety: Unchecked cast from java.lang.Object to java.util.List<common.model.Tag>
有问题的方法:
@SuppressWarnings("unchecked")
@Override
public void validate(Object target, Errors errors) {
logger.entry();
List<Tag> list;
list = (List<Tag>) target;
for (Tag tag : list) {
if (tag.getTag().length() > 30) {
errors.rejectValue("tags", "tags.length");
break;
}
}
logger.exit();
}
答案 0 :(得分:1)
这似乎是eclipse(ejc
)编译器的一个问题。使用javac
编译器时,make / compilation上不会出现警告。但是如果你切换到eclipse编译器,那么你会收到警告。在(已关闭的)IntelliJ IDEA错误报告ecj doesn't use @SuppressWarnings中,JetBrains开发团队表示
IDEA将此类抑制用于其自身的错误突出显示,这与编译器无关。同样,它按原样运行外部编译器,没有任何干扰。
所以IDEA并没有做任何事情来告诉ejc不要使用/尊重SuppressWarnings
注释。