Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the use of cloneable interface in java?

Tags:

java

clone

What is the use of implementing a cloneable interface as it is a marker interface?

I can always make a public Object clone() method in my class. What is the actual purpose of cloneable interface?

like image 802
Jyotirup Avatar asked Jul 14 '12 06:07

Jyotirup


2 Answers

That's because the clone() method throws CloneNotSupportedException if your object is not Cloneable.

You should take a look at the documentation for clone() method.

Following is how clone() method is declared in the class Object:

protected Object clone() throws CloneNotSupportedException

Note:

Also, it's been realized that Clone is broken. This answer here in SO explains why and how you can avoid using it.

like image 97
Bhesh Gurung Avatar answered Sep 19 '22 03:09

Bhesh Gurung


Making Cloneable a marker interface was a mistake.

That said, the one thing it does is "enable" the default implementation of clone() in Object. If you don't implement Cloneable then invoking super.clone() will throw a CloneNotSupportedException.

like image 33
Laurence Gonsalves Avatar answered Sep 20 '22 03:09

Laurence Gonsalves