java检查字段是否被覆盖
checkstyle是否具有检查子类是否覆盖父类的公共或受保护字段的规则
比如说
class Ancestor {
public static final int VALUE = 123;
}
class Descendant extends Ancestor {
public static final int VALUE = 100; // <-- this is unwanted
}
我想用支票的方式来禁止这种情况
你可以在下面搜索框中键入要查询的问题!
checkstyle是否具有检查子类是否覆盖父类的公共或受保护字段的规则
比如说
class Ancestor {
public static final int VALUE = 123;
}
class Descendant extends Ancestor {
public static final int VALUE = 100; // <-- this is unwanted
}
我想用支票的方式来禁止这种情况
# 1 楼答案
覆盖语义不适用于静态字段。当您在
Descendant
中访问VALUE
时,使用100作为值。还可以使用Ancestor.VALUE
引用超类的值现在,避免混淆的最佳方法是始终通过使用类名称
Ancestor.VALUE
和Descendant.VALUE
对静态成员进行限定来访问静态成员。IDE(如eclipse)允许您强制执行此规则,但在任何静态代码分析工具中都没有看到这一点。下面是如何在eclipse中执行此操作的屏幕截图