2016-03-14 18 views
14

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?

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.

+3

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'. –

+1

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. –

Các vấn đề liên quan