Linkedlist.java有一个永远不会导出的Node类,而是使用和Iterator来允许客户端遍历细节。为什么Node类不公开?如果有某种理由选择那种方式的想法是什么?
http://www.docjar.com/html/api/java/util/LinkedList.java.html
答案 0 :(得分:2)
Node
类不是官方Java API的一部分。这是一个实现细节,因此它被隐藏起来private
。如果通过使它public
公开它,那可能会让人们认为使用它是安全的,这会产生误导,因为并非所有Java实现都会使用它。例如,LinkedList
的OpenJDK6实现没有Node
类。相反,它有一个Entry
类。
答案 1 :(得分:1)
它仅用于LinkedList
的内部实现,不适合公开使用。
LinkedList
实现的所有接口都不需要Node
类,因此隐藏此类详细信息完全可以。