Digamos que tengo un objeto que he creado. He editado algunos de los valores en ella es tan diferente de la new object() que hace referencia. Permite llamar a ese objeto de la f1. Ahora quiero otro objeto llamado f2 a ser una copia de f1, pero no es un puntero, por lo que al cambiar un valor de f2, no cambiar también la f1. ¿Cómo puedo hacer esto en java?

InformationsquelleAutor Ephraim | 2011-03-25

6 Comentarios

  1. 17

    Primer lugar, tienen su clase implemente la Cloneable de la interfaz. Sin este, llamando a clone() en su objeto, se produce una excepción.

    Siguiente, reemplazar Object.clone() así que devuelve su tipo específico de objeto. La aplicación puede ser simplemente:

    @Override
    public MyObject clone() {
        return (MyObject)super.clone();
    }

    a menos que necesite algo más complicado de hacer. Asegúrese de llamar super.clone(), aunque.

    Esto llevará todo el camino hacia arriba en la jerarquía Object.clone(), que copia cada pieza de datos en el objeto a la nueva que se construye. Las referencias se copian, no clonados, así que si quieres una copia en profundidad (clones de los objetos referenciados por su objeto), tendrás que hacer algún trabajo extra en su reemplaza clone() función.

  2. 6

    La mayoría de los objetos tienen un método clon() que devolverá una copia de ese objeto, por lo que en su caso

    f2 = f1.clone()
  3. 0

    Se dice que el uso de la incorporada en clon método tiene algunos problemas. Por lo tanto, es mejor aplicar otra técnica de clonación.

    Hay una biblioteca de java que soporta tanto superficial de la clonación y profundo de la clonación. Se ofrece un profundo clonación sin la necesidad de implementar Serializable.

    Aquí

  4. -3

    podría clonar o no clonar usted puede escribir su propia función.

    function (variable){
       clone = JSON.parse(JSON.stringify(variable))
       return clone;
    }
    • La pregunta es acerca de Java, javascript no

Dejar respuesta

Please enter your comment!
Please enter your name here