Tenho o seguinte cenário:
- interface A;
- classe B que implementa A;
- classe BFactory que retorna instâncias da classe B;
- a classe B é interna a BFactory;
- o método de BFactory que retorna objetos do tipo B possui como tipo de retorno A.
No código, eu obtenho um objeto de B por meio de BFactory, e então serializo este objeto. Até aí, tudo bem. O problema é que na hora de desserializar, tenho que fazer o type cast em readObject de ObjectInputStream. Se coloco A, o compilador reclama que A é uma interface, e por isso não dá para reconstituir o objeto (o que faz muito sentido). Se coloco o nome da classe, B no caso, ele diz que ela não está visível.
Alguem tem alguma idéia de como resolver isto?