Why String
class is not implementing Cloneable
interface?
For example: (We write this type of code sometimes.)
String s1 = new String("Hello");
String s2 = new String("Hello");
Here s1!=s2;
So instead of doing this , if we could have done:
String s1 = new String("Hello");
String s2 = s1.clone();
This could be easy.
The String
class represents an immutable string. There would be no purpose to cloning a String
. If you feel that you need to clone it, then you can just reuse the same reference and achieve the same effect.
Even if you could clone
s1
as s2
, then s1 != s2
would still be true
. They'd still be references to distinct objects.
You can clone string with
String clonedString = new String(stringToClone);
so
String s1 = new String("Hello");
String s2 = new String(s1);
Here's another way:
String s2 = s1.concat("");