Pregunta

¿Es posible? Necesito poder leer desde el archivo más adelante. Ejemplo de lo que pretendo hacer (pero no funciona porque E no es serializable):

private <E> void writeEvent(ObjectOutputStream out,E obj) throws IOException{
        out.writeObject(new custEvent(obj));
        }

class custEvent<E> implements Serializable{
        private E obj;
        private Date date;

        public custEvent(E obj) {
            this.obj=obj;
            date=new Date();
        }
    }
¿Fue útil?

Solución

¿Por qué no usa usar un límite superior en su parametrización genérica para E?

Como en:

private <E extends Serializable> void writeEvent(ObjectOutputStream out,E obj) {
  // etc.
}

La confusión aquí sería que Serializable es una interfaz y no se puede "extender" por clases (pero pueden ser extendido por otras interfaces como comenta Thomas), pero el límite superior sigue siendo válido.

Por supuesto que esto implica que tu Es voluntad necesitar para implementar Serializable, o implementar una interfaz que se extienda Serializable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top