Tôi chỉ phát hiện local class trong Java:Khi nào bạn nên sử dụng một lớp địa phương trong Java?
public final class LocalClassTest
{
public static void main(final String[] args) {
for(int i = 10; i > 0; i--) {
// Local class definition--declaring a new class local to the for-loop
class DecrementingCounter {
private int m_countFrom;
public DecrementingCounter(final int p_countFrom) {
m_countFrom = p_countFrom;
}
public void count() {
for (int c = m_countFrom; c > 0; c--) {
System.out.print(c + " ");
}
System.out.println();
}
}
// Use the local class
DecrementingCounter dc = new DecrementingCounter(i);
dc.count();
}
}
}
tôi đã đi qua nhận xét này: Advantages of Local Classes đó liệt kê một số lợi thế rất lớn của các tầng lớp địa phương qua các lớp bên trong vô danh.
Câu hỏi của tôi là, có vẻ như sẽ không có nhiều trường hợp kỹ thuật này có lợi thế hơn các lớp bên trong vô danh. Ý tôi là: bạn sẽ sử dụng một lớp địa phương nếu lớp của bạn chỉ hữu dụng bên trong phạm vi của phương thức. Nhưng khi các phương thức của bạn đến mức chúng phức tạp đến nỗi bạn cần phải bắt đầu định nghĩa các lớp tùy chỉnh bên trong chúng, chúng có lẽ đã quá phức tạp rồi, và cần phải tách ra. Tại thời điểm đó, lớp học địa phương của bạn sẽ phải trở thành một lớp bên trong, phải không?
Một số ví dụ về thời điểm các lớp địa phương mong muốn hơn các lớp bên trong, không liên quan đến các phương pháp siêu phức tạp (nên tránh)?
AAHHHHH ... mắt tôi bị đau. :) – limc
lớp địa phương được khai báo trong vòng lặp ???? bạn điên à? Bạn không cần phải làm điều đó vì lớp của bạn không truy cập bất kỳ biến địa phương nào của vòng lặp. Lớp này thậm chí có thể được bên ngoài dễ dàng –
@eugener: Vâng, tôi cho rằng nó nên được khai báo bên ngoài vòng lặp, nhưng đó là một ví dụ contrived mà có vẻ như vô lý bằng nhau theo cách ... –