2008-09-17 5 views
2
public class Test { 
    public static void main(String[] args) { 

    } 
} 

class Outer { 
    void aMethod() { 
     class MethodLocalInner { 
      void bMethod() { 
       System.out.println("Inside method-local bMethod"); 
      } 
     } 
    } 
} 

Quelqu'un peut-il me dire comment imprimer le message de bMethod?Méthode Classe interne locale

Répondre

6

Vous seul pouvez instancier MethodLocalInner au sein aMethod. Donc, faire

void aMethod() { 

    class MethodLocalInner { 

      void bMethod() { 

        System.out.println("Inside method-local bMethod"); 
      } 
    } 

    MethodLocalInner foo = new MethodLocalInner(); // Default Constructor 
    foo.bMethod(); 

} 
+0

Thanks..realised où je suis allé wrong..I mettre la nouvelle ligne d'instance devant la classe localinner création. – Omnipotent

1

Dans la méthode aMethod après la déclaration de la classe MethodLocalInner vous pouvez par exemple faire l'appel suivant:

new MethodLocalInner().bMethod(); 
1

Pourquoi ne pas simplement créer une instance de MethodLocalInner, dans aMethod et appelez bMethod sur la nouvelle instance?

0

Vous devez appeler new Outer(). AMethod() dans votre méthode principale. Vous devez également ajouter une référence à MethodLocalInner() méthode b() à l'intérieur de votre aMethod(), comme ceci:.

public class Test { 
    public static void main(String[] args) { 
     new Outer().aMethod(); 
    } 
} 


void aMethod() { 
    class MethodLocalInner { 
     void bMethod() { 
      System.out.println("Inside method-local bMethod"); 
     } 
    } 
    new MethodLocalInner().bMethod(); 
} 
Questions connexes