Inspectopedia
 
2024.3

Cloneable class without 'clone()' method

Warning
New
Last modified: 03 December 2024

Reports classes implementing the Cloneable interface that don't override the clone() method.

Such classes use the default implementation of clone(), which isn't public but protected, and which does not copy the mutable state of the class.

A quick-fix is available to generate a basic clone() method, which can be used as a basis for a properly functioning clone() method expected from a Cloneable class.

Example:

After the quick-fix is applied:

Use the Ignore classes cloneable due to inheritance option to ignore classes that are Cloneable because they inherit from the Cloneable class.

Use the Ignore when Cloneable is necessary to call clone() method of super class option to ignore classes that require implementing Cloneable because they call the clone() method from a superclass.