153 votes

Comment passer des paramètres à la classe anonyme ?

Est-il possible de passer des paramètres, ou accéder à des paramètres extérieurs d’une classe anonyme ? Par exemple :

Est-il possible pour l’auditeur d’accès myVariable ou être passé myVariable sans créer l’auditeur comme une classe nommée réelle ?

353voto

Adam Mlodzinski Points 1698

Oui, en ajoutant une méthode d’initialisation qui renvoie à « this » et immédiatement appel de cette méthode :

Aucune déclaration « finale » nécessaire.

81voto

Matthew Willis Points 26453

Techniquement, non, parce que les classes anonymes ne peuvent pas avoir des constructeurs.

Cependant, classes peuvent référencer des variables contenant des étendues. Pour une classe anonyme, ceux-ci peuvent être des variables d’instance du contenant ou les classes ou les variables locales qui sont marqués en finales.

Edit: comme Peter a souligné, vous pouvez également passer des paramètres au constructeur de la superclasse de la classe anonyme.

31voto

aav Points 1590

Oui. vous pouvez capturer des variables, visible à la classe interne. la seule restriction est qu’il doit être définitif

22voto

adarshr Points 25912

Comme ça :

8voto

Rob Russell Points 259

Comme indiqué au http://www.coderanch.com/t/567294/java/java/declare-constructor-anonymous-class vous pouvez ajouter une instance de l'initialiseur. C'est un bloc qui n'a pas de nom et est exécuté en premier (tout comme un constructeur).

Regarde comme ils sont également discutées lors Pourquoi java Instance initialiseurs? et Comment est une instance de l'initialiseur différents à partir d'un constructeur? décrit les différences de constructeurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X