Jestem wewnątrz anonimowej klasy wewnętrznej i chcę odwołać się do instancji klasy zewnętrznej. W Javie można się do niego odwoływać za pomocą .this
poprzedzonej nazwą klasy, aby rozwiązać niejasności. Podoba się: MainActivity.this
. Jak mogę osiągnąć to samo w Kotlin? Ponieważ kompilator narzeka 'expression 'this' cannot be a selector(occur after a dot)'
kiedy to robię. Dzięki!Jak odwołać się do instancji klasy zewnętrznej w Kotlin?
14
A
Odpowiedz
26
Możesz użyć [email protected]
, aby odwołać się do zewnętrznej instancji klasy.
Wskazówka: Nie pamiętam również składni, więc napisałem prosty przykład w Javie i poprosiłem IntelliJ o przekształcenie klasy w Kotlin, aby znaleźć odpowiedź.
Powiązane problemy
- 1. Rozwiązywanie nakładających się instancji w bibliotece zewnętrznej
- 2. Jak odwołać się do DLL w web.config?
- 3. Jak odwołać się do zasobu w Javie?
- 4. Klasa wewnętrzna uzyskująca dostęp do klasy zewnętrznej
- 5. Dostęp do klasy zewnętrznej "super" z klasy wewnętrznej w Javie
- 6. Jak odwołać się do wielu wersji zespołu
- 7. Jak mogę odwołać się do podprogramu Perl?
- 8. Jak odwołać się do początkowego zatwierdzenia?
- 9. Jak odwołać się do widoku "najwyżej"?
- 10. Jak odwołać się do Microsoft.Office.Interop.Excel dll?
- 11. Udostępnianie ogólnej instancji w Kotlin i Guice
- 12. dostęp do prywatnych danych należących klasy zewnętrznej w wewnętrzną klasy
- 13. Jak odwołać się do szablonu klasy, jako szablonu, z poziomu własnej definicji klasy?
- 14. GSON nie deserializuje odwołania do zewnętrznej klasy
- 15. Czy można odwołać się do metody klasy abstrakcyjnej w metodzie klasy, która jej nie rozszerza?
- 16. Rozszerzanie klasy rodzajowe w Kotlin
- 17. Klasy wewnętrzne: Jak uzyskać obiekt klasy zewnętrznej w czasie budowy?
- 18. Zwróć wskaźnik do zagnieżdżonej klasy wewnętrznej z ogólnej klasy zewnętrznej
- 19. Zagnieżdżone zagnieżdżone klasy wewnętrzne klasy zewnętrznej zmienne
- 20. Pobierz obiekt klasy zewnętrznej z obiektu klasy wewnętrznej.
- 21. Wewnętrzne klasy Dziedziczenie w Kotlin
- 22. Java - Konstruktor klasy wewnętrznej - dozwolona tylko dla klasy zewnętrznej
- 23. Jak odwołać się do typu DOMWindow w przeglądarce Google Chrome?
- 24. Jak odwołać się do mockito w ramach tycho?
- 25. Jak odwołać się do stałej w Spring Expression Language
- 26. Jak mogę odwołać się do obrazu w Meteorrze?
- 27. Jak odwołać się do protokołu w Objective-C?
- 28. Jak odwołać się do wyrażenia podzielonego w Perlu?
- 29. Jak odwołać się do definicji wiersza/kolumny w Grid.Row/Grid.Column?
- 30. Jak mogę odwołać się do katalogu domowego użytkownika w WIX
Istnieje kolejna "sztuczka". Napisz zmienną o poprawnym typie 'val a: MainActivity =' i wywołaj inteligentne uzupełnianie (Ctrl + Shift + Spacja). IntelliJ zasugeruje wyrażenie "this @ MainActivity". –
Pytanie uzupełniające w przypadku, gdy ktoś ma ochotę zapytać: dlaczego _nie_ robi się tak samo jak w Javie? Jest to bardzo dziwna składnia, której nigdy nie widziałem nigdzie indziej. –