强制参数名称一致性

时间:2019-07-23 20:05:16

标签: java interface

在下面的简单示例中,将创建一个带有方法和参数名称栏的接口。

以下实现通过指定Zoo来巧妙地对此进行了更改。

    public class Query {

      public interface MyInterface {
        public void foo(int bar);
      }

      public class Thing implements MyInterface {
        @Override
        public void foo(int zoo) { }   
      }

      public Query() { }

      public static void main(String[] args) { }

    }

如何强制参数名称与MyInterfacebar 不是 zoo)中指定的名称保持一致?

理想情况下,我正在寻找会引发警告或错误的编译器选项或类似选项。

1 个答案:

答案 0 :(得分:2)

在编译器级别(例如javac)上-您不能method signature仅根据方法名称和参数 types 创建,因此名称和返回值类型基本上被忽略

您唯一可以做的就是为SonarQube之类的工具编写自己的语法规则,但据我所知,它不适合您。

您似乎想创建一些库[代码序列化?]并强迫用户使用正确的参数命名-这意味着您还需要强迫他也使用特定工具