Linkedlist.java 有一个从不导出的 Node 类,而是使用 Iterator 来允许客户端循环访问详细信息。为什么 Node 类不公开?如果有某种理由选择这种方式,那么想法是什么?
http://www.docjar.com/html/api/java/util/LinkedList.java.html
Linkedlist.java 有一个从不导出的 Node 类,而是使用 Iterator 来允许客户端循环访问详细信息。为什么 Node 类不公开?如果有某种理由选择这种方式,那么想法是什么?
http://www.docjar.com/html/api/java/util/LinkedList.java.html
该类Node
不是官方 Java API 的一部分。这是一个实现细节,所以通过 make 隐藏它private
。如果它是通过 make 暴露出来的public
,那可能会让人们认为它可以安全使用,这会产生误导,因为并非所有 Java 实现都会使用它。例如,OpenJDK6 的实现LinkedList
没有Node
类。相反,它有一个Entry
类。
它仅用于内部实现,LinkedList
不用于公共用途。
实现的所有接口LinkedList
都不需要Node
类,因此隐藏这些细节是完全可以的。