Synopsis: | Clone method return type should match class name |
Language: | Java |
Severity Level: | 4 |
Category: | CloneImplementation |
Description: |
If a class implements cloneable the return type of the method clone() must be the class name. That way, the caller of the clone method doesn’t need to cast the returned clone to the correct type. public class Foo implements Cloneable { @Override protected Object clone() { // Violation, Object must be Foo } } public class Foo implements Cloneable { @Override public Foo clone() { //Ok } } |