java - Moving all fields from one object into another -
can somehow move field values 1 object without using reflection? so, want this:
public class betterthing extends thing implements ibetterobject { public betterthing(thing t) { super(); t.evolve(this); } } so, evolve method evolve 1 class another. argument <? extends <? extends t>> t class of object, you're calling evolve on.
i know can reflection, reflection hurts performance. in case thing class in external api, , there's no method copy required fields object.
as @olivercharlesworth points out, can't done directly. either have resort reflection (though wouldn't recommend it!) or series of field-by-field assignments.
another option though, switch inheritance composition:
public class betterthing implements ibetterobject { thing delegate; public betterthing(thing t) { this.delegate = t; } // thing methods (delegate methods) string thingmethodone() { return delegate.thingmethodone(); } // betterthing methods } this commonly referred decorator pattern.
Comments
Post a Comment