devi usare una superclasse/interfaccia comune ad entrambe.
Es. se io ho
codice:
public interface InterfacciaComune{}
public class ClasseNonComune{}
public class MyClass1 extends ClasseNonComune implements InterfacciaComune{}
public class MyClass2 implements InterfacciaComune{}
con
codice:
List<InterfacciaComune> val = new ArrayList<InterfacciaComune>();
sto chiedendo degli oggetti che rispondano alla mia interfaccia, indipendentemente dalla loro gerarchia MyClass1 e MyClass2 posso aggiungerli.
Nel tuo caso tu in realtà stai aggiungendo tutti gli oggetti che implementano Serializable, ma non è sbagliato (visto che vai a dire che tipologia di elementi vuoi), un po poco restrittivo, ma corretto