Почему бы вам не использовать верхнюю границу в общей параметризации для E
?
Как в:
private <E extends Serializable> void writeEvent(ObjectOutputStream out,E obj) {
// etc.
}
Путаница здесь была бы, что Serializable
это интерфейс и не может быть «расширен» классами (но это Можно быть расширенными другими интерфейсами, как отмечает Томас), но верхняя граница все еще действительна.
Конечно, это подразумевает, что ваш E
S будет необходимость для реализации Serializable
, или реализовать интерфейс, который расширяется Serializable
.