Dupliqué possible: strong>
Utilisation des définitions de classe dans une méthode de Java < / p> blockQuote>pouvons-nous avoir une classe intérieure à l'intérieur d'une méthode? p>
Tous les échantillons de code seront utiles. P>
4 Réponses :
Oui, vous pouvez:
public static void main(String[] args) { class Foo implements Runnable { @Override public void run() { System.out.println("Hello"); } } Foo foo = new Foo(); }
Il y a une bonne utilisation pour les classes intérieures locales, à savoir le cas où vous avez besoin de quelque chose comme une classe anonyme, mais où vous avez besoin de la classe pour avoir un constructeur.
@MathiSschwarz: Vous pouvez utiliser des blocs d'initialisateur pour la plupart de ces cas - que faites-vous dans le constructeur qui l'oblige à être nommée?
Oui c'est une autre façon de le faire. Cependant, les «paramètres» à de tels blocs d'initialisateur devraient alors être déclarés définitifs définis dans la portée extérieure (la méthode).
Oui, cela s'appelle Classe intérieure locale forte> - Vous trouverez des exemples en utilisant ce terme dans une recherche sur le Web. P>
Oui, vous pouvez.
public final class Test { // In this method. private void test() { // With this local variable. final List<String> localList = new LinkedList<String>(); // We can define a class class InnerTest { // Yes you can!! void method () { // You can even access local variables but only if they are final. for ( String s : localList ) { // Like this. } } } } }
Vous pouvez réellement essayer ceci vous-même que vous savez ... et aussi: Stackoverflow.com/Questtions/2428186/...