Frage

Ist es überhaupt möglich? Ich muss später aus der Datei lesen können. Beispiel dafür, was ich tun möchte (aber nicht funktioniert, weil E nicht serialisierbar ist):

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();
        }
    }
War es hilfreich?

Lösung

Warum verwenden Sie nicht eine Obergrenze in Ihrer generischen Parametrisierung für E?

Wie in:

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

Die Verwirrung hier wäre das Serializable ist eine Schnittstelle und kann nicht nach Klassen "erweitert" werden (aber sie kann von anderen Schnittstellen erweitert werden, wie Thomas bemerkt), aber die Obergrenze ist noch gültig.

Dies impliziert natürlich, dass Ihre ES Will brauchen implementieren Serializable, oder implementieren eine Schnittstelle, die sich erstreckt Serializable.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top