【问题标题】:any annotation equivalent to @Override for overriding (hiding) static methods?任何等效于@Override 的注释用于覆盖(隐藏)静态方法?
【发布时间】:2011-03-25 18:42:01
【问题描述】:

正如here 所解释的那样,在java 中静态方法不会被子实现覆盖而是隐藏

这意味着您不能对它们使用@Override 注释

以下代码

@Override
public static void test(String value1, String value2) {

给出此编译器错误。

The method test(String, String) of type Child must override or implement a supertype method Child.java

是否有一些等效的注释可以用来确保我的类“隐藏”父类的现有静态方法?

【问题讨论】:

  • 出于好奇,您想通过隐藏超类静态方法来实现什么?
  • 我正在玩游戏框架,它使用静态方法进行控制器操作(有一个关于为此目的使用静态方法的完整论点)我定义了一个基本控制器,我想在一个孩子上覆盖该方法控制器...
  • 真的不要那样做。我想它应该被 linted 并且(不)适当的注释是 @SuppressWarnings

标签: java inheritance static overriding


【解决方案1】:

这很简单:不。

查看the list of standard compiler annotations

【讨论】:

    【解决方案2】:

    我不知道您可以添加任何注释。但是简单地创建具有完全相同名称和输入(相同的方法签名)的方法应该隐藏它。唯一确定的方法是确定超类方法的细节,然后也许测试你的方法......这就是我能想到的。我能想到的唯一其他注释是抑制警告,这与我想象的相反。每当我隐藏这样的方法时,我通常会从我的 IDE 中收到警告,告诉我我正在隐藏另一个方法。

    【讨论】:

      猜你喜欢
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      相关资源
      最近更新 更多