Hay una clase que quiero serializar, e implementa Serializable, pero uno de los objetos que contiene no implementa Serializable.En java, ¿es posible agregar la interfaz Serializable a la clase que no la tiene en tiempo de ejecución?
¿Hay alguna manera de modificar la clase en tiempo de ejecución para que implemente la interfaz Serializable para poder serializarla? No puedo cambiarlo en tiempo de compilación porque es una biblioteca de terceros.
Tal vez tendría que usar algún tipo de escritor de códigos de bytes o algo así?
EDITAR: Tanto la clase que contiene como la clase contenida están en la biblioteca de terceros, así que no creo que pueda marcar algo como transitorio. La clase contenedora es marcada como serializable, pero contiene un objeto que no lo es.
Estoy bien escribiendo un método de serialización personalizado para la clase, aunque no estoy seguro de cómo lo haría, ¿tendría que usar la reflexión para obtener los valores de las variables privadas?
Usar la interfaz Externalizable http://java.sun.com/j2se/1.3/docs/api/java/io/Externalizable.html –
La clase contenedora también está en la biblioteca de terceros, así que no creo que pueda agrega esos métodos a él. – Kyle
Entonces supongo que es hora de aprender asm. – bmargulies