resources.report.rules.pmd.AvoidProtectedFieldInFinalClass.html Maven / Gradle / Ivy
AvoidProtectedFieldInFinalClass
AvoidProtectedFieldInFinalClass
Do not use protected fields in final classes since they cannot be subclassed. Clarify your intent by using private or package access modifiers instead.
//ClassOrInterfaceDeclaration[@Final='true']
/ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration
/FieldDeclaration[@Protected='true']
Example(s):
public final class Bar {
private int x;
protected int y; // bar cannot be subclassed, so is y really private or package visible?
Bar() {}
}