是否可以使用 Java 注释更改方法可见性?



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 种不同的方法来解决这个问题:

  1. 只需用SuppressWarnings("unused")注释该声明
  2. 使用 IntelliJ "如果由注释者,则禁止未使用的警告"功能
  3. 禁用未使用的代码检查

第一种方法是立即适用于其他开发人员的方法,也是最明确的一种方法。这将适用于 eclipse 以及其他 IDE。无需解释用SuppressWarnings("unused")注释的声明在当前搜索范围之外使用。 为了清楚起见:这可能看起来像是用于声明已使用事物的语言支持,但该注释是对开发人员的提示。@SuppressWarnings是纯源代码注释,在编译或运行时不可用。

第二种方法仅适用于您的机器,除非您将项目设置导出到代码存储库中,并且其他开发人员也使用 IntelliJ。 此处介绍了该方法:IntelliJ 禁止对 API 方法的未使用警告

第三个只是......嗯......这是一个选择。

下一个问题:这对@FXML有什么好处?

我不确定,但我想这是一个插件/IntelliJ 功能。模拟从类成员和方法到该jxml文件中特定元素的绑定的装订线图标也是该插件的一项功能。

最新更新