I know this is a little bit too late but it might just help someone.
In my case I already had a method to make the Object from a json Object and make json from the object. with this you can simply create a new instance of the object and use it to restore. For instance in a function parsing a final object
public void update(final Object object){
final Object original = Object.makeFromJSON(object.toJSON());
// the original is not affected by changes made to object
}