Domanda

È anche possibile? Devo essere in grado di leggere dal file in seguito. Esempio di ciò che intendo fare (ma non funziona perché E non è serializzabile):

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();
        }
    }
È stato utile?

Soluzione

Perché non usi usa un limite superiore nella parametrizzazione generica per E?

Come in:

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

La confusione qui sarebbe quella Serializable è un'interfaccia e non può essere "esteso" dalle classi (ma esso Potere essere esteso da altre interfacce come osserva Thomas), ma il limite superiore è ancora valido.

Naturalmente questo implica che il tuo ES Will bisogno implementare Serializable, o implementa un'interfaccia che si estende Serializable.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top