IntelliJ IDEA @SuppressWarnings 用于检查工具名称
IntelliJ IDEA @SuppressWarnings for inspection with name of tool
我知道我可以像这样抑制来自 IntelliJ IDEA 检查的警告:
@SuppressWarnings("CollectionDeclaredAsConcreteClass")
public PropertiesExpander(Properties properties) {
this.properties.putAll(properties);
}
外行人可能不清楚哪个工具需要这种抑制。
PMD 为此使用前缀:
@SuppressWarnings("PMD.UnusedLocalVariable")
FindBugs 使用专用注释:
@SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR")
有什么办法可以清楚地表明这种抑制只是针对IntelliJ IDEA的?
为方法参数抑制这种情况的一种方法是改用 javadoc 标记:
/**
* @noinspection CollectionDeclaredAsConcreteClass
*/
public PropertiesExpander(Properties properties) {
this.properties.putAll(properties);
}
这个 javadoc 标签是非常特定于 IntelliJ 的,所以其他工具应该不会遇到任何问题。您可以通过按原样识别它或添加一些评论来轻松识别它:
/**
* @noinspection IntelliJ CollectionDeclaredAsConcreteClass
*/
public PropertiesExpander(Properties properties) {
this.properties.putAll(properties);
}
当然你还可以缩短它:
/** @noinspection CollectionDeclaredAsConcreteClass */
public PropertiesExpander(Properties properties) {
this.properties.putAll(properties);
}
一般做法
可以使用特殊注释而不是 @SuppressWarnings
注释逐一取消某些警告。
这是一个包含大量警告的示例:
如果您在 notUsedLocalVariable
上按 Alt+Enter,然后您可以在上下文菜单中选择 Suppress for statement with comment
(选择Remove variable ...
后右转)
在某些 variables/fields/methods 上,选择的抑制只是 Suppress for statement
。
如果您查看右侧字段,现在大部分(不是全部)警告都已被抑制:
如您所见,可以在同一个注释行中进行多次隐藏。
这似乎有点乏味,但我认为这是你能做的最好的了。
我找到了使用 @SuppressWarnings
实现该目标的方法:
@SuppressWarnings("idea: CollectionDeclaredAsConcreteClass")
public PropertiesExpander(Properties properties) {
this.properties.putAll(properties);
}
注意idea:
后面必须有space,否则无效
我知道我可以像这样抑制来自 IntelliJ IDEA 检查的警告:
@SuppressWarnings("CollectionDeclaredAsConcreteClass")
public PropertiesExpander(Properties properties) {
this.properties.putAll(properties);
}
外行人可能不清楚哪个工具需要这种抑制。
PMD 为此使用前缀:
@SuppressWarnings("PMD.UnusedLocalVariable")
FindBugs 使用专用注释:
@SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR")
有什么办法可以清楚地表明这种抑制只是针对IntelliJ IDEA的?
为方法参数抑制这种情况的一种方法是改用 javadoc 标记:
/**
* @noinspection CollectionDeclaredAsConcreteClass
*/
public PropertiesExpander(Properties properties) {
this.properties.putAll(properties);
}
这个 javadoc 标签是非常特定于 IntelliJ 的,所以其他工具应该不会遇到任何问题。您可以通过按原样识别它或添加一些评论来轻松识别它:
/**
* @noinspection IntelliJ CollectionDeclaredAsConcreteClass
*/
public PropertiesExpander(Properties properties) {
this.properties.putAll(properties);
}
当然你还可以缩短它:
/** @noinspection CollectionDeclaredAsConcreteClass */
public PropertiesExpander(Properties properties) {
this.properties.putAll(properties);
}
一般做法
可以使用特殊注释而不是 @SuppressWarnings
注释逐一取消某些警告。
这是一个包含大量警告的示例:
如果您在 notUsedLocalVariable
上按 Alt+Enter,然后您可以在上下文菜单中选择 Suppress for statement with comment
(选择Remove variable ...
后右转)
在某些 variables/fields/methods 上,选择的抑制只是 Suppress for statement
。
如果您查看右侧字段,现在大部分(不是全部)警告都已被抑制:
如您所见,可以在同一个注释行中进行多次隐藏。
这似乎有点乏味,但我认为这是你能做的最好的了。
我找到了使用 @SuppressWarnings
实现该目标的方法:
@SuppressWarnings("idea: CollectionDeclaredAsConcreteClass")
public PropertiesExpander(Properties properties) {
this.properties.putAll(properties);
}
注意idea:
后面必须有space,否则无效