不必要的@SuppressWarnings(“未使用”)

我得到了代码中eclipse中的@SuppressWarnings注解的编译器警告:

 @Override public boolean doSomething(@SuppressWarnings("unused") String whatever) throws AnException { throw new AnException("I'm still in bed and can't do anything until I've had a shower!"); } 

它看起来像一个黄色的浪尖下的单词“未使用”,并在鼠标hover我得到的工具提示Unnecessary @SuppressWarnings("unused")

我认为另一个开发人员正在被提示,通过日食这些注释,我基本上被提示把他们。 我如何configurationeclipse来提示我把@SuppressWarnings注释,而不是抱怨呢?

如果有人想在这里评论最佳做法,那么这也是最受欢迎的。

在你的问题的代码中, @SuppressWarnings("unused")注释是不必要的,因为该方法要么覆盖超类中的另一个方法,要么实现一个接口。 即使你实际上没有使用whatever参数,也必须声明它,否则@Override注解会产生一个错误(如果你删除了参数,你将会改变重写的方法的签名)。

在一些较旧的Eclipse版本中,所显示的代码不会引起警告,但是在最近的版本中它会这样做。 我相信这是一个有效的警告,在这种情况下,我宁愿删除@SuppressWarnings("unused")

窗口首选项Java编译器错误/警告注释

并select忽略 未使用的“@ SuppressWarnings”标记

或者,如果您认为删除“SuppressWarnings”注释更为正确:

窗口 – >首选项 – > Java – >编译器 – >错误/警告 – >不必要的代码 – >参数的值不被使用

并select忽略重写和实现方法

在我的代码中没有用@SuppressWarnings(“未使用”)定义3个方法的inheritance

这个代码在Eclipse Juno(最新版本)中提供了“Unnecessary @SuppressWarnings(”unused“)”,但是如果我删除了@SuppressWarnings(“unused”),我会在IntelliJ IDEA 11.1中得到“Constructor / Method is never used”警告。 3

这个方法没有直接用在项目中,只有第三方产品Jackson,JAXB和GSON,所以IntelliJ是对的,我会说…

 public class EmailUnsendable extends SkjemaError { private NestedCommand command; // Can't be Command (interface) because of GSON! @SuppressWarnings("unused") // Used by Jackson/JAXB/GSON public EmailUnsendable() { } public EmailUnsendable(String referenceNumber, String stackTrace, NestedCommand command) { super(referenceNumber, stackTrace); this.command = command; } @SuppressWarnings("unused") // Used by Jackson/JAXB/GSON public NestedCommand getCommand() { return command; } @SuppressWarnings("unused") // Used by Jackson/JAXB/GSON public void setCommand(NestedCommand command) { this.command = command; } } 

我相信这是Eclipse中的一个错误。