是否可以使用 Java 注释更改方法可见性?
Is it possible to change method visibility using Java annotations?
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 也可能具有该功能,但没有真正定义 used/unused 的含义。
此外,它不是语言功能,因此,在 java 中不支持将事物定义为 "used" 或 "unused"。
这是对当前代码库的解释,或者如果某些东西正在使用则更好"search scope"。
例如,仅在测试用例中使用方法的事实可能会被解释为未使用。
回答你的问题。您有 3 种不同的方法来解决该问题:
- 只需用
SuppressWarnings("unused")
注释该声明
- 使用 IntelliJ "Suppress unused warnings if annotated by" 功能
- 禁用未使用的代码检查
第一种方法是立即适用于其他开发人员的方法,也是最明确的方法。这将适用于 Eclipse 以及其他 IDE。不用解释,用SuppressWarnings("unused")
注解的声明是在当前搜索范围之外使用的。
澄清一下:这可能看起来像是一种语言支持,用于将事物声明为已使用,但该注释是对开发人员的提示。 @SuppressWarnings
是纯源注释,在编译或运行时不可用。
第二种方法仅适用于您的机器,除非您将项目设置也导出到您的代码存储库中,并且其他开发人员也使用 IntelliJ。
此处解释了该方法:
第三个只是..好吧..这是一个选择。
下一个问题:这对 @FXML
有何影响?
我不确定,但我想这是一个 plugin/IntelliJ 功能。模拟从 class 成员和方法到 jxml
文件中特定元素的绑定的装订线图标也是该插件的一个功能。
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 也可能具有该功能,但没有真正定义 used/unused 的含义。
此外,它不是语言功能,因此,在 java 中不支持将事物定义为 "used" 或 "unused"。 这是对当前代码库的解释,或者如果某些东西正在使用则更好"search scope"。
例如,仅在测试用例中使用方法的事实可能会被解释为未使用。
回答你的问题。您有 3 种不同的方法来解决该问题:
- 只需用
SuppressWarnings("unused")
注释该声明
- 使用 IntelliJ "Suppress unused warnings if annotated by" 功能
- 禁用未使用的代码检查
第一种方法是立即适用于其他开发人员的方法,也是最明确的方法。这将适用于 Eclipse 以及其他 IDE。不用解释,用SuppressWarnings("unused")
注解的声明是在当前搜索范围之外使用的。
澄清一下:这可能看起来像是一种语言支持,用于将事物声明为已使用,但该注释是对开发人员的提示。 @SuppressWarnings
是纯源注释,在编译或运行时不可用。
第二种方法仅适用于您的机器,除非您将项目设置也导出到您的代码存储库中,并且其他开发人员也使用 IntelliJ。
此处解释了该方法:
第三个只是..好吧..这是一个选择。
下一个问题:这对 @FXML
有何影响?
我不确定,但我想这是一个 plugin/IntelliJ 功能。模拟从 class 成员和方法到 jxml
文件中特定元素的绑定的装订线图标也是该插件的一个功能。