在下面的简单示例中,将创建一个带有方法和参数名称栏的接口。
以下实现通过指定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
不是 zoo
)中指定的名称保持一致?
理想情况下,我正在寻找会引发警告或错误的编译器选项或类似选项。
答案 0 :(得分:2)
在编译器级别(例如javac)上-您不能,method signature仅根据方法名称和参数 types 创建,因此名称和返回值类型基本上被忽略
您唯一可以做的就是为SonarQube之类的工具编写自己的语法规则,但据我所知,它不适合您。
您似乎想创建一些库[代码序列化?]并强迫用户使用正确的参数命名-这意味着您还需要强迫他也使用特定工具