resources.report.rules.pmd.CloneMethodMustBePublic.html Maven / Gradle / Ivy
CloneMethodMustBePublic
CloneMethodMustBePublic
The java Manual says “By convention, classes that implement this interface should override Object.clone (which is protected) with a public method.”
//MethodDeclaration[@Public='false']
[
MethodDeclarator/@Image = 'clone'
and MethodDeclarator/FormalParameters/@ParameterCount = 0
]
Example(s):
public class Foo implements Cloneable {
@Override
protected Object clone() throws CloneNotSupportedException { // Violation, must be public
}
}
public class Foo implements Cloneable {
@Override
protected Foo clone() { // Violation, must be public
}
}
public class Foo implements Cloneable {
@Override
public Object clone() // Ok
}