public interface Cloneable
I faced CloneNotSupportedException
exception in my previously explained post.
Thrown to indicate that the clone
method in class Object
has been called to clone an object, but that the object’s class does not implement the Cloneable
interface.
Applications that override the clone
method can also throw this exception to indicate that an object could not or should not be cloned.
A class implements the Cloneable
interface to indicate to the Object.clone()
method that it is legal for that method to make a field-for-field copy of instances of that class.
Invoking Object’s clone method on an instance that does not implement the Cloneable interface results in the exception CloneNotSupportedException
being thrown.
By convention, classes that implement this interface should override Object.clone (which is protected) with a public method. See Object.clone() for details on overriding this method.
Note that this interface does not contain the clone method. Therefore, it is not possible to clone an object merely by virtue of the fact that it implements this interface. Even if the clone method is invoked reflectively, there is no guarantee that it will succeed.
In summary, this can be avoided by implementing Cloneable Interface and Overriding protected method clone().