
resources.report.rules.pmd.ClassWithOnlyPrivateConstructorsShouldBeFinal.html Maven / Gradle / Ivy
ClassWithOnlyPrivateConstructorsShouldBeFinal
ClassWithOnlyPrivateConstructorsShouldBeFinal
A class with only private constructors should be final, unless the private
constructor is called by a inner class.
This rule is defined by the following XPath expression:
TypeDeclaration[count(../TypeDeclaration) = 1]/ClassOrInterfaceDeclaration
[@Final = 'false']
[count(./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/ConstructorDeclaration[@Private = 'true']) >= 1 ]
[count(./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/ConstructorDeclaration[@Public = 'true']) = 0 ]
[not(.//ClassOrInterfaceDeclaration)]
Example:
public class Foo { //Should be final
private Foo() { }
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy