Я просматривал код Java LinkedList
и заметил, что он использует статический вложенный класс Entry
.
public class LinkedList<E> ... {
...
private static class Entry<E> { ... }
}
В чем причина использования статического вложенного класса, а не нормального внутреннего класса?
Единственная причина, по которой я мог придумать, заключалась в том, что Entry не имеет доступа к переменным экземпляра, поэтому с точки зрения ООП он лучше инкапсулируется.
Но я подумал, что могут быть и другие причины, например, производительность. Что бы это могло быть?
Заметка. Я надеюсь, что мои термины верны, я бы назвал это статическим внутренним классом, но я думаю, что это неправильно: http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html