Ich bin in einer anonymen inneren Klasse und möchte die Instanz der äußeren Klasse referenzieren. In Java kann unter Verwendung von .this
mit vorangestelltem Klassennamen referenziert werden, um Mehrdeutigkeiten aufzulösen. Wie: MainActivity.this
. Wie kann ich dasselbe in Kotlin erreichen? Weil der Compiler sich beschweren 'expression 'this' cannot be a selector(occur after a dot)'
wenn ich das tue. Vielen Dank!Wie referenziere ich die Instanz der äußeren Klasse in Kotlin?
14
A
Antwort
26
Sie können [email protected]
verwenden, um auf die äußere Klasseninstanz zu verweisen.
Tipp: Ich konnte mich auch nicht an die Syntax erinnern, also schrieb ich ein einfaches Beispiel in Java und bat IntelliJ, die Klasse nach Kotlin zu konvertieren, um die Antwort zu finden.
Verwandte Themen
- 1. Kotlin äußeren Bereich
- 2. Wie kopiere ich eine Instanz einer Klasse mit einer geschachtelten Klasse, die ein Zeigerelement in der äußeren Klasse enthält?
- 3. Wie initialisiert man eine Instanz der inneren Klasse, wenn die innere Klasse in der Methode der äußeren Klasse deklariert wird?
- 4. Wie erstellt man eine Instanz der anonymen Klasse der abstrakten Klasse in Kotlin?
- 5. Wie referenziere ich eine typedef innerhalb einer Klasse mit einer Instanz einer solchen Klasse?
- 6. Wie erstelle ich eine Instanz einer anonymen Schnittstelle in Kotlin?
- 7. Erstellen Sie eine Instanz einer abstrakten Klasse in Kotlin
- 8. Was ist die Initialisierungssemantik der Kotlin-Klasse?
- 9. Kann ich eine Instanz der äußeren Klasse mithilfe der Reflektion des inneren Klassentyps abrufen?
- 10. Wie referenziere ich die GroovyObject-Instanz von MetaClass-Methoden in Groovy?
- 11. Wie man richtig eine Methode überschreiben, um eine Instanz der generischen Klasse in Kotlin
- 12. Wie referenziere ich ein Lambda von innen?
- 13. Wie referenziere ich die Assembly von web.config?
- 14. Erweiterung generische Klasse in Kotlin
- 15. Wie eine anonyme Klasse instanziiert, die eine Schnittstelle in Kotlin
- 16. Python: Wie Namespaces zugreifen äußeren Klasse
- 17. Wo referenziere ich System.Web.Mvc.dll?
- 18. Zeiger von einer Klasse zur äußeren Klasse?
- 19. Zugang Outer Klasse diese Instanz
- 20. Wie referenziere ich das Farbattribut?
- 21. Wie erhält man die innere Template-Klasse zum Typ der äußeren Template-Klasse?
- 22. Wie erhalte ich die EventBus-Instanz in der Composite-Erweiterungsklasse?
- 23. Wie referenziere ich die Werte von Konfigurationselementen in anderen Konfigurationselementen?
- 24. ZF2: Wie bekomme ich ServiceManager-Instanz aus der benutzerdefinierten Klasse
- 25. Wie referenziere ich Tabellen in Excel VBA?
- 26. Wie erstelle ich eine Instanz einer Klasse?
- 27. Wie ändere ich die URL der OntClass-Instanz in Jena?
- 28. Kotlin: Wie die Enum-Klasse mit einer Erweiterungsfunktion erweitern
- 29. Aufruf der äußeren Klassenfunktion von der inneren Klasse
- 30. Wie kann ich Instanz der HttpRequestHeaders Klasse erstellen
Es gibt einen anderen "Trick". Schreiben Sie eine Variable mit dem korrekten Typ 'val a: MainActivity =' und rufen Sie die intelligente Vervollständigung auf (Strg + Umschalt + Leertaste). IntelliJ schlägt den Ausdruck 'this @ MainActivity' vor. –
Folgefrage für den Fall, dass jemand Lust hat zu fragen: Warum wird dieses _not_ nicht genauso gemacht wie in Java? Das ist eine sehr seltsame Syntax, die ich nirgendwo anders gesehen habe. –