¿Cuál es la forma más fácil de clonar (copiar) un objeto Scala mutable?¿Cuál es la forma más fácil de clonar (copiar) un objeto Scala mutable?
Respuesta
Dado que desea la manera más fácil de copiar profundamente un objeto Scala y no el más rápido, siempre puede serializar el objeto, siempre que sea serializable, y luego deserializarlo. El siguiente código solo se ejecuta cuando se compila, no en REPL.
def deepCopy[A](a: A)(implicit m: reflect.Manifest[A]): A =
util.Marshal.load[A](util.Marshal.dump(a))
val o1 = new Something(...) // "Something" has to be serializable
val o2 = deepCopy(o1)
Una solución específica de Java (que también debería funcionar bien en Scala) es la Cloner library. Es rápido, fácil, clona objetos profundamente en función de los campos (utilizando la reflexión) y es lo suficientemente inteligente como para no clonar objetos inmutables conocidos (como String, Integer, etc.). Finalmente, puede registrar objetos inmutables personalizados para que no los clonen tampoco.
Lo recomiendo encarecidamente.
Primera vez que he oído hablar de la biblioteca Cloner. ¡Suena muy útil! –
- 1. ¿Cuál es la forma más fácil de animar una línea?
- 2. ¿Cuál es la forma más eficiente de copiar en profundidad un objeto en Ruby?
- 3. C#: ¿cuál es la forma más fácil de restar tiempo?
- 4. ¿Cuál es la forma más fácil de implementar Scala PartialFunction en Java?
- 5. ¿Cuál es la mejor forma de clonar/copiar un array observable en knockoutJS?
- 6. En una aplicación MFC, ¿cuál es la forma más fácil de copiar un archivo de un directorio a otro?
- 7. ¿Cuál es la forma más fácil de duplicar un registro de registro activo?
- 8. ¿Cuál es la diferencia entre copiar y clonar?
- 9. ¿Cuál es la mejor forma de clonar un objeto comercial en Silverlight?
- 10. ¿Cuál es la forma más directa de clonar un repositorio vacío, * bare * git?
- 11. ¿Cuál es la forma de haskell para copiar un directorio?
- 12. ¿Cuál es la forma más eficiente de copiar de forma masiva a SQL Server desde Java?
- 13. ¿Cuál es la forma más fácil de usar reify (obtener un AST de) una expresión en Scala?
- 14. ¿Cuál es la forma más fácil de obtener la ubicación actual de un iPhone?
- 15. ¿Cuál es la forma más fácil de hacer 'es' en Java?
- 16. ¿Cuál es la forma más rápida de probar si un objeto es IEnumerable?
- 17. ¿Cuál es la forma más fácil de crear un sitio web de reserva de citas?
- 18. ¿Cuál es la forma más fácil de acceder a un micrófono de una computadora en Python?
- 19. ¿Cuál es la forma más fácil de eliminar todos los atributos de un XML en C#?
- 20. ¿Cuál es la forma más fácil de configurar un servidor de subversión local?
- 21. ¿Cuál es la forma más fácil de extraer datos de un PDF?
- 22. ¿Cuál es la forma más fácil de obtener datos espaciales de sql 08 en un mapa?
- 23. ¿Cuál es la forma más fácil de eliminar NSStrings vacíos de un NSArray?
- 24. ¿Cuál es la forma más fácil de leer un archivo DBF de FoxPro desde Python?
- 25. Android Eclipse: ¿Cuál es la forma más fácil de duplicar una clase?
- 26. ¿Cuál es la forma más fácil de analizar un archivo INI en Java?
- 27. ¿Cuál es la forma más fácil de crear una extensión C opcional para un paquete python?
- 28. ¿Cuál es la forma más fácil de instalar un módulo Perl perdido?
- 29. ¿Cuál es la forma más fácil de ordenar un EF4 EntityCollection <T>?
- 30. node.js, express.js - ¿Cuál es la forma más fácil de servir un solo archivo estático?
¡Buena respuesta! No puede ser mucho más fácil que esto! –
Hice un poco [test] (https://gist.github.com/4409b8562ac24fc042b0) pero sigo recibiendo _ClassNotFoundException_ (y las clases de casos son serializables). – Tralamazza