报告使用另一个对象的 privateprotected 字段的对象。

Java 允许将此类字段用于与当前对象属于同一类的对象,但某些代码样式不鼓励这种用法。 此外,这种对 private 字段的直接访问在面向组件的体系结构中可能会失败,例如 Spring 或 Hibernate,它们期望对其他对象的所有访问都通过方法调用进行,以便框架可以使用代理来调解访问。

示例:


public class Base {
    protected int bar;

    class Inside {
        int f(Base base) {
            return base.bar;  // 警告:直接访问非 public 字段
        }
    }
}

class SomewhereElse {
    void m(Base base) {
        base.bar = 1; // 警告:直接访问非 public 字段
    }
}

配置检查: