首页 > 解决方案 > 强制参数名称一致性

问题描述

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

以下实现通过指定 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) { }

    }

如何强制参数名称符合MyInterface( bar not zoo ) 中指定的内容?

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

标签: javainterface

解决方案


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

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

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


推荐阅读