有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java检查字段是否被覆盖

checkstyle是否具有检查子类是否覆盖父类的公共或受保护字段的规则

比如说

class Ancestor {
   public static final int VALUE = 123;
}

class Descendant extends Ancestor {
   public static final int VALUE = 100; // <-- this is unwanted
}

我想用支票的方式来禁止这种情况


共 (1) 个答案

  1. # 1 楼答案

    覆盖语义不适用于静态字段。当您在Descendant中访问VALUE时,使用100作为值。还可以使用Ancestor.VALUE引用超类的值

    现在,避免混淆的最佳方法是始终通过使用类名称Ancestor.VALUEDescendant.VALUE对静态成员进行限定来访问静态成员。IDE(如eclipse)允许您强制执行此规则,但在任何静态代码分析工具中都没有看到这一点。下面是如何在eclipse中执行此操作的屏幕截图

    enter image description here