Les variables de classe externes d'accès à la classe interne anonymes Java

Est-il possible pour les classes intérieures imbriquées ABar et BBar d'accéder aux variables de la classe principale? Par exemple:

public class Foo { public ABar abar = new ABar(); public BBar bbar = new BBar(); public int someCounter = 0; public class ABar { public int i = 0; public void someMethod(){ i++; someCounter++; } } public class BBar { public void anotherMethod(){ bbar.someMethod(); someCounter++; } } } // then called using: // Foo myFoo = new Foo(); myFoo.bbar.anotherMethod(); 

modifier

  • Garder une vue en bas avec la bibliothèque SlidingUpPanel
  • Crashlytics (Fabric) organisations séparées pour les variantes d'application (types de construction, saveurs de produits)
  • Comment afficher un dialogue Progress entre deux activités?
  • Touchez n'importe où pour glisser le menu ouvert pour le tiroir de navigation
  • Comment ouvrir / fermer SQLite db dans Android correctement
  • BroadcastReceiver onReceive () reçoit deux fois
  • On dirait que le code que j'ai tapé aurait fonctionné si j'avais essayé d'abord; Essayait d'obtenir de l'aide sans être trop spécifique. Le code avec lequel j'ai vraiment du mal

    Échec en raison de l'erreur "ne peut pas faire de référence statique à l'étape de champ non statique"

     public class Engine { public Stage stage = new Stage(); // ... public class Renderer implements GLSurfaceView.Renderer { // ... @Override public void onDrawFrame(GL10 gl) { stage.alpha++; } } public class Stage extends MovieClip { public float alpha = 0f; } 

    2 Solutions collect form web for “Les variables de classe externes d'accès à la classe interne anonymes Java”

    Dans votre code, oui, c'est possible.

    Les classes imbriquées non statiques (classes internes) ont accès à d'autres membres de la classe ci-jointe, même si elles sont déclarées privées. Les classes imbriquées statiques n'ont pas accès à d'autres membres de la classe ci-jointe.

    Voir: Classes imbriquées

    Si votre classe interne étend la classe externe, elle aura accès aux membres publics et protégés de la classe externe. Je me suis juste fatigué et ça a fonctionné. La construction est un peu bizarre, car elle implique une sorte de boucle infinie dans la définition de classe, mais elle semble faire le travail.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.