"Tại sao bạn làm điều này có vấn đề gì với bạn?" Tuy nhiên, có cách nào để thực hiện điều này mà không thay đổi tên tham số phương thức cuối cùng?Các thông số cuối cùng có thể đủ điều kiện theo một cách nào đó để giải quyết xung đột đặt tên với các thành viên lớp ẩn danh không?
private Foo createAnonymousFoo(final Bar bar) {
return new Foo() {
private Bar bar = SomeUnknownScopeQualifier.bar;
public Bar getBar() {
return bar;
}
public void doSomethingThatReassignsBar() {
bar = bar.createSomeDerivedInstanceOfBar();
}
};
}
Rõ ràng là không có doSomethingThatReassignsBar gọi, bạn sẽ không cần thanh thành viên, v.v. Trong trường hợp này, sửa chữa đơn giản là thay đổi final Bar bar
thành một cái gì đó như final Bar startBar
và sau đó nhiệm vụ là tốt. Nhưng ngoài sự tò mò, có thể tham khảo cụ thể đến số final Bar
(Tương tự như cách bạn nói Super.this
)?
"Tại sao bạn làm điều này có vấn đề gì với bạn?" :) – jpm
Nó thực sự không đáng trách như bạn tưởng tượng. Tôi đã tạo trình tạo tài liệu và sử dụng mẫu khách truy cập để viết các mục và trong trường hợp bảng tính, tôi chỉ đơn giản lặp qua các ô bắt đầu tại "startCell" (tham số phương thức cuối cùng) và di chuyển qua chúng bằng 'cell = cell.nextCell() ', trong đó ô là ô hiện tại của ItemVisitor để ghi vào. –