java - 强制参数名称一致性
问题描述
在下面的简单示例中,创建了一个带有方法和参数名称栏的接口。
以下实现通过指定 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
) 中指定的内容?
理想情况下,我正在寻找会引发警告或错误的编译器选项或类似选项。
解决方案
在编译器级别(例如 javac) -您不能,方法签名仅从方法名称和参数类型创建,因此名称和返回类型基本上被忽略
您唯一能做的就是为 SonarQube 等工具编写自己的语法规则,但据我所知,它不适合您。
似乎您想创建一些库 [代码序列化?] 并强制用户使用正确的参数命名 - 这意味着您还需要强制他使用特定工具
推荐阅读
- django - 具有递增整数的 django 批量更新字段
- javascript - const {name, value} = event.target -- 这是什么意思
- glassfish - 休息服务 URL 给出不工作并给出错误
- flutter - 在 Scaffold 主体中的屏幕之间切换时更改底部导航栏
- postgresql - PostgreSQL Null 在查找 NOT IN 时会中断列表
- html - 我需要在 WooCommerce 产品页面中删除 MSRP 标签
- firebase - 在firebase中覆盖的对象
- css - 通过css在外部单击时隐藏弹出窗口
- spring - sec:authorize 总是在浏览器中为百里香视图中的 isAuthenticated() 和 isAnonymous() 返回相同的视图
- c# - 判断两个不同的 PropertyInfo 是否来自同一个接口?