Xét đoạn mã sau:Sử dụng một phương pháp tùy tiện xác định một giao diện vô danh
public static void main(String[] args) {
File file = new File("C:\\someFile.txt") {
public void doStuff() {
// Do some stuff
}
};
file.doStuff(); // "Cannot resolve method"
}
Khi chúng tôi cố gắng gọi phương thức mới định nghĩa của chúng tôi doStuff()
, nó không phải là có thể. Lý do cho điều này là file
được khai báo là một đối tượng thuộc loại File
và không phải là một thể hiện của lớp con ẩn danh mới của chúng tôi.
Vì vậy, câu hỏi của tôi là, có cách nào tốt đẹp để đạt được hành vi này không? Khác với hiển nhiên (chỉ là, khai báo lớp đúng cách).
http://stackoverflow.com/questions/8697971/anonymous-class-method-access - Bạn sẽ không "trọng" bất cứ điều gì ở đây, đó là việc sử dụng thông thường hơn của các tầng lớp vô danh, vì vậy phương pháp của bạn sẽ chỉ có sẵn trong lớp ẩn danh của bạn hoặc nếu bạn đã làm một cái gì đó bằng cách sử dụng phản ánh –
'extend' là đủ tốt cho tôi. –
Bạn có thể sử dụng một lớp ẩn danh nhưng bạn không thể có giao diện ẩn danh. –