Gần đây, tôi gặp phải một vấn đề bí ẩn trong một dự án Android, mà tôi đã mô tả here. Tôi bằng cách nào đó giải quyết vấn đề, nhưng vẫn không biết lý do chính xác đằng sau nó.Java: gọi phương thức lớp bên ngoài trong lớp bên trong vô danh
Giả sử tôi muốn gọi hàm foo() trong lớp bên trong. Câu hỏi đặt ra là, sự khác biệt giữa gọi đó là trực tiếp như
foo();
hoặc gọi nó với cá thể lớp ngoài
OuterClass.this.foo();
Bên cạnh đó, tôi sẽ đánh giá cao nếu có ai có thể kiểm tra những gì tôi cuối cùng question liên quan đến này, và cho tôi manh mối về lý do lỗi xảy ra. Cảm ơn nhiều.
PS: Tôi đọc ở đâu đó rằng lớp bên trong không tĩnh sẽ luôn giữ một thể hiện của lớp bên ngoài. Vì vậy, nó sẽ gọi chức năng bên ngoài bằng cách sử dụng trường hợp đó nếu tôi chỉ sử dụng foo()?
Thx. Nhưng tôi chắc chắn rằng lớp bên trong không có chức năng có cùng tên trong trường hợp của tôi. Có sự khác biệt cụ thể nào khác ngoại trừ phần rõ ràng không? – Selkie
Không phải trong ngữ cảnh này. Tôi đã xem xét câu hỏi nguồn của bạn và thực tế là thay đổi bạn đã thực hiện đã giải quyết nó là không thể giải thích được. Điều đó không nên có ảnh hưởng gì cả. Làm điều này là hoàn toàn để làm sáng tỏ bất kỳ sự mơ hồ trong những gì bạn đang đề cập đến ... –
bạn r đúng. Tôi đã phạm sai lầm trong đó. Cảm ơn sự khai sáng! – Selkie