subclass 父 class shadowed/hidden 中的私有字段 - 检查以捕获它

Private field in parent class shadowed/hidden by subclass - inspections to catch it

我刚刚破解了一个棘手的错误,结果证明是以下情况的结果:

class Parent {
    private Object field;

    public Object getField() {
        return field;
    }

    public void setField(Object field) {
        this.field = field;
    }
}

class Child extends Parent {

}

class GrandChild extends Child {
    private Object field;

    public Object getField() {
        return field;
    }
}

现在我完全意识到这是一种难闻的气味。我花了几天时间才找到。我正在寻找的是一种检查,它可能会突出显示代码中其他地方的这种情况或类似情况。 Eclipse 或 IntelliJ 或 CheckStyle 或 Findbugs 或任何东西都可以。

本质上,我想找到 private 隐藏父 private 字段的字段。

这是 eclipse.oxygen
中的特定编译器警告

受到 Robert post 的启发,我在 IntelliJ 中找到了它: