2009-09-30 3 views
1

J'ai une classe A. J'ai une référence ref de classe A pointant vers un objet de type x. Quel type d'objet fait ref.getClass() imprimer A 1? Et que signifie $?

Répondre

13

Le $ signifie une classe interne. Dans ce cas:

public class A { 
    public A() { 
    Runnable r1 = new Runnable() { 
     public void run() { ... } 
    }; 
    } 

    private static class Inner { 
    ... 
    } 
} 

Le Runnable dans le constructeur se traduira par un fichier de classe A 1.class $ et la classe intérieure crée un fichier appelé A Inner.class $.

Les classes internes anonymes sont numérotées séquentiellement à partir de 1 lorsqu'elles sont rencontrées (bien que je ne suis pas sûr que ce comportement soit garanti ou non). Les classes internes nommées ajoutent leur nom après le $.

Questions connexes