Вопрос

Это вообще возможно? Я должен быть в состоянии прочитать из файла позже. Пример того, что я собираюсь делать (но не работает, потому что E не сериализуется):

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();
        }
    }
Это было полезно?

Решение

Почему бы вам не использовать верхнюю границу в общей параметризации для E?

Как в:

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

Путаница здесь была бы, что Serializable это интерфейс и не может быть «расширен» классами (но это Можно быть расширенными другими интерфейсами, как отмечает Томас), но верхняя граница все еще действительна.

Конечно, это подразумевает, что ваш ES будет необходимость для реализации Serializable, или реализовать интерфейс, который расширяется Serializable.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top