Toda la razón LoPiTaL!
Lo que me ha llamado la atención es que si hacia:
controlerE.establecerInterface(1);
controlerE.establecerInterface(2);
controlerE.establecerInterface(1);
Saltaba la excepción. Pero si lo hacia al reves:
controlerE.establecerInterface(2);
controlerE.establecerInterface(1);
controlerE.establecerInterface(2);
No! ¿Por que?....Porque ejemplo2 tenia variables dentro y ejemplo1 no.
Por lo cual interpreto con tu explicación que al existir una reserva de memoria del objeto no se libera como bien dices.
Seguire tu consejo o con el case que tenia preparado.
De vez en cuando por intentar optimizar código la que te buscas
.
Muchas gracias!