He escrito este método de clonación cuando el padre de la clase Employee es abstracto y el método clone() en la clase padre es abstracto. Quería copiar el tipo de datos primitivo del objeto del empleado con este código en lugar de copiar cada tipo de datos primitivos individualmente, pero este código tiene un problema con la línea que llamo método clone(). (Este es el código de clase Employee)¿Qué hay de malo con este clon()?
public Object clone() {
Object obj = new Object();
Object object = obj.clone(); //Emphasis here
return object;
}
el error es: El clon método() desde el tipo de objeto no es visible.
Pero mi clase Employee está en la jerarquía de clases que puede acceder al método protegido clone() en la clase Object.
Ésta es mi sencilla clase Employee:
public class Employee extends Person implements Cloneable {
private int ID;
public Employee() {
ID = 0;
}
public void setID(int ID) {
this.ID = ID;
}
public int getID() {
return ID;
}
public Object clone1() throws CloneNotSupportedException {
try {
Object obj = new Object();
Object object = obj.clone();
return object;
} catch (CloneNotSupportedException ex) {
return null;
}
}
1. Porque, según tengo entendido, sé que la situación en realidad es un poco complicada, no solo un simple caso de clonación(). – akarnokd