Não Compila?


import java.util.*;

public class Test {
    void f() {
       System.out.println( "Outer" );
    }

    public class InnerTest {
        InnerTest() { System.out.println( "Inner construtor" ); }   
       
        void f() { System.out.println( "Inner f" ); }

    } // Fim da classe interna InnerTest

    public static void main( String[] args ) {
         Test t = new Test();
         Test.InnerTest test = t.new InnerTest() {
                public void f() {
                     t.f();
                     System.out.println( "Sub Inner f" );
                }
         }

         test.f();
    }

} // Fim da classe Test

Por favor, alguém pode explicar por que esse código não compila?

Desde já agradeço

Um forte abraço

Deyvid Rannyere Moraes Costa

Está com dois erros:

1.Quando vc faz a instancia da classe Test ela deve ser final.
2.Está faltando um “;” quando vc implementa a classe anonima.

import java.util.*;

public class Test {
    void f() {
       System.out.println( "Outer" );
    }

    public class InnerTest {
        InnerTest() { System.out.println( "Inner construtor" ); }   
       
        void f() { System.out.println( "Inner f" ); }

    } // Fim da classe interna InnerTest

    public static void main( String[] args ) {
         final Test t = new Test();
         Test.InnerTest test = t.new InnerTest() {
                public void f() {
                     t.f();
                     System.out.println( "Sub Inner f" );
                }
         };

         test.f();
    }

}