Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deep copy "Object" type [duplicate]

Tags:

java

deep-copy

I have an object with a member of type "Object":

class MyObject{
    Object member;

    public Object getObject(){
        return member;
     }

     public void setObject(Object obj){
         member = obj;
     }
}

Is it possible to deep copy MyObject?

like image 599
yuris Avatar asked Nov 30 '25 19:11

yuris


2 Answers

In its current implementation it is impossible because member can be anything and you cannot make a copy of what you dont know.

like image 87
Evgeniy Dorofeev Avatar answered Dec 03 '25 12:12

Evgeniy Dorofeev


Implement Cloneable marker interface and you can copy of MyObject by clonning.

class MyObject implements Cloneable {
    public Object clone(){
      try {
        return super.clone();
      } catch (CloneNotSupportedException e) {
           return null; 
      }
   }
}

Members also need to be Cloneable other wise it will throw CloneNotSupportedException. ...

MyObject obj = new MyObject();
MyObject obj1 = obj.clone();
like image 23
Subhrajyoti Majumder Avatar answered Dec 03 '25 10:12

Subhrajyoti Majumder



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!