IntelliJ 将我在反射库中使用的一些函数变灰。我想通过注释来阻止它们变灰,例如用@MyAnnotation
.但到目前为止,我找不到一种方法来做到这一点。到目前为止,我的自定义注释如下所示:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
}
是否有一个默认注释可以添加到我自己的注释中,这将阻止 IntelliJ 将我的注释方法变灰?
我注意到JavaFX不会用@FXML
注释使函数变灰,
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
public @interface FXML {
}
但我看不到任何我尚未使用的东西。
未使用的检查是 IntelliJ 功能,其他 IDE 也可能具有该功能,但没有真正定义已使用/未使用的含义。
此外,它不是一种语言功能,因此,没有这样的语言支持来定义Java中的东西为"已使用"或"未使用"。 这是对当前代码库或更好的"搜索范围"的解释(如果某些东西正在使用中(。
例如,仅在测试用例中使用方法的事实可以解释为未使用。
回答您的问题。您有 3 种不同的方法来解决这个问题:
- 只需用
SuppressWarnings("unused")
注释该声明 - 使用 IntelliJ "如果由注释者,则禁止未使用的警告"功能
- 禁用未使用的代码检查
第一种方法是立即适用于其他开发人员的方法,也是最明确的一种方法。这将适用于 eclipse 以及其他 IDE。无需解释用SuppressWarnings("unused")
注释的声明在当前搜索范围之外使用。 为了清楚起见:这可能看起来像是用于声明已使用事物的语言支持,但该注释是对开发人员的提示。@SuppressWarnings
是纯源代码注释,在编译或运行时不可用。
第二种方法仅适用于您的机器,除非您将项目设置导出到代码存储库中,并且其他开发人员也使用 IntelliJ。 此处介绍了该方法:IntelliJ 禁止对 API 方法的未使用警告
第三个只是......嗯......这是一个选择。
下一个问题:这对@FXML
有什么好处?
我不确定,但我想这是一个插件/IntelliJ 功能。模拟从类成员和方法到该jxml
文件中特定元素的绑定的装订线图标也是该插件的一项功能。