|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
T
- Tipo de dato desde el que copiamos los valores.public interface ICopyable<T extends ICopyable<?>>
Establece el valor del objeto actual como una copia profunda de otro objeto.
Su uso difiere de Object.clone() en que no implica la creación de ninguna instancia, si no la inicialización de una con los valores de otra. Por ejemplo:
class MiClase implements ICopyable<MiClase> { private MiClase copiable; private String name; @Override MiClase copy(MiClase other) { this.name = other.name; if (other.copiable != null) { this.copiable = new MiClase().copy(other.copiable); } } }También puede usarse para unificar la implementación del constructor por copia, y la de implementar Cloneable:
class MiClase implements ICopyable<MiClase>, Cloneable { // Constructor de copia public MiClase(MiClase other) { this.copy(other); } @Override public MiClase clone() { MiClase clon; try { clon = (MiClase)super.clone(); clon.copy(this); } catch (CloneNotSupportedException e) { throw new UnsupportedOperationException(e); } return clon; } }
Method Summary | |
---|---|
ICopyable<T> |
copy(T other)
Establece el valor del objeto actual como una copia profunda de otro objeto. |
Method Detail |
---|
ICopyable<T> copy(T other)
other
- Objeto del que copiamos las propiedades.
NullPointerException
- si other es nulo.
UnsupportedOperationException
- si other no ni puede completarse la operación
de copia debido a que alguno de los valores de la propiedades de other no
es admitido.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |