public class Solution {
private String name;
Solution(String name) {
this.name = name;
}
private String getName() {
return name;
}
private void sout()
{
new Solution("sout")
{
void printName()
{
System.out.println(getName());
}
}.printName();
}
public static void main(String[] args) {
new Solution("main").sout();
}
}
La méthode d'une classe anonyme se comporte de manière inattendue. Comment faire une méthode sout pour imprimer "sout", maintenant il imprime "main"?La méthode d'une classe anonyme se comporte de façon inattendue
Vous devez toujours fournir plus d'informations que "se comporter de façon inattendue". Étudiez le centre d'aide pour avoir une idée de ce que vous devriez mettre dans votre question. – GhostCat
Je suppose que cela a à voir avec le fait que 'getName' est privé, et la classe anonyme ne peut pas accéder aux méthodes privées de sa superclasse, mais elle peut accéder aux méthodes privées de sa classe englobante ... et c'est compliqué par le fait même classe. – immibis
Où avez-vous trouvé ce code? C'est vraiment bizarre. Vous faites aussi ceci: http://stackoverflow.com/questions/32959680/invoking-a-method-of-an-anonymous-class –