Tôi đang ở trong một lớp bên trong vô danh và muốn tham chiếu đến cá thể của lớp bên ngoài. Trong Java, nó có thể được tham chiếu bằng cách sử dụng .this
trước tên lớp để giải quyết sự mơ hồ. Giống như: MainActivity.this
. Làm thế nào tôi có thể đạt được như vậy trong Kotlin? Bởi vì trình biên dịch đang phàn nàn 'expression 'this' cannot be a selector(occur after a dot)'
khi tôi làm điều đó. Cảm ơn!Làm thế nào để tham khảo thể hiện của lớp bên ngoài trong Kotlin?
14
A
Trả lời
26
Bạn có thể sử dụng [email protected]
để tham chiếu phiên bản lớp bên ngoài.
Mẹo: Tôi không thể nhớ cú pháp, vì vậy tôi vừa viết một ví dụ đơn giản trong Java và yêu cầu IntelliJ chuyển lớp sang Kotlin để tìm câu trả lời.
Các vấn đề liên quan
- 1. Kotlin - Làm thế nào để làm cho lĩnh vực read-only cho các lớp bên ngoài
- 2. Làm cách nào để tôi có thể tham khảo loại của lớp hiện tại?
- 3. Làm thế nào để khởi tạo một thể hiện của lớp bên trong nếu lớp bên trong được khai báo trong phương thức lớp bên ngoài?
- 4. subquery - làm thế nào để tham khảo giá trị truy vấn bên ngoài
- 5. Làm thế nào để thực hiện "trái bên ngoài tham gia" trong SQLAlchemy
- 6. Làm thế nào để tham khảo các thread hiện hành
- 7. Làm cách nào để tham khảo các phụ thuộc thư viện bên ngoài trong qt qbs?
- 8. Phạm vi bên ngoài Kotlin
- 9. Không thể tham khảo lớp bên từ một bối cảnh tĩnh, nhưng chỉ khi lớp bên ngoài là chung chung
- 10. Làm thế nào để tạo ra một thể hiện của lớp vô danh lớp trừu tượng trong Kotlin?
- 11. Làm thế nào để tham khảo kiểu lớp hiện tại sử dụng Generics
- 12. tham khảo constructor Kotlin với Generics
- 13. Làm thế nào để tham khảo các phương pháp thể hiện trong tài liệu?
- 14. Nhận tài liệu tham khảo lớp học từ chức năng cấp cao nhất trong kotlin
- 15. VB.NET: Làm thế nào để tham khảo mô-đun VB.NET?
- 16. làm thế nào để truy cập vào một biến của lớp bên ngoài từ lớp bên trong ruby
- 17. Làm thế nào để thêm thư viện bên ngoài vào đường dẫn lớp trong trình thông dịch của scala?
- 18. Làm thế nào để tham khảo mockito trong tycho?
- 19. Làm thế nào để tạo một thể hiện của lớp bên trong của lớp chính nó hoạt động?
- 20. Làm thế nào để tham khảo bộ điều khiển từ một lớp UITableViewCell trong Swift
- 21. Làm thế nào để tham khảo nhãn chunk hiện tại trong knitr?
- 22. Làm thế nào tôi có thể tham khảo các lớp UWP trong PowerShell
- 23. python: làm thế nào để tham khảo các lớp từ bên trong nó (như hàm đệ quy)
- 24. Làm thế nào tôi có thể thêm lớp bên ngoài trong Laravel 5
- 25. Không thể tham khảo/sửa đổi biến không phải cuối cùng trong một lớp bên trong
- 26. Tham khảo dịch bên trong của một dịch
- 27. Có cách nào để tham khảo lớp Java cho chức năng cấp cao nhất của Kotlin không?
- 28. Làm thế nào tôi có thể tham khảo một appSetting trong một phần khác của web.config
- 29. Tham khảo các tiêu chí bên ngoài truy vấn bí danh từ bên trong một SQLProjection
- 30. Cách truy cập tham chiếu "này" của lớp bên ngoài ẩn danh trong java
Có một "mẹo" khác. Viết một biến với kiểu đúng 'val a: MainActivity =' và gọi hoàn thành thông minh (Ctrl + Shift + Space). IntelliJ sẽ đề xuất cụm từ 'this @ MainActivity'. –
Câu hỏi tiếp theo trong trường hợp ai đó cảm thấy thích hỏi: tại sao _not_ này được thực hiện giống như trong Java? Đây là một cú pháp rất lạ mà tôi chưa bao giờ thấy ở bất cứ nơi nào khác. –