Neste código eu não entendo uma coisa… No caso do método doSomething ser private o método da classe interna é executado, se este mesmo método for public, default ou protected, o método executado é o da classe anômima;
Minha dúvida: Sendo assim, os membros private, métodos private são acessados pela classe dona da innerclass?
public class InnerClass {
Inner i = null;
private class Inner {
Inner(){
System.out.println("Instância inner Class");
}
private void doSomething() {
System.out.println("Instância inner Class Anonim Private");
}
}
public InnerClass(){
this.i = new Inner() {
@SuppressWarnings("unused")
public void doSomething(){
System.out.println("Instância inner Class Anonim Public");
}
};
this.i.doSomething();
}
}
O método doSomething seria (deveria ser) o Inner… Vou editar.