为什么linkedlist.java不导出节点类

为什么linkedlist.java不导出节点类,java,linked-list,Java,Linked List,java有一个从不导出的节点类,它使用和迭代器允许客户端循环查看详细信息。为什么节点类不是公共的?如果有什么理由选择这种方式,你的想法是什么 节点类不是官方Java API的一部分。这是一个实现细节,因此通过将其设置为私有来隐藏它。如果它是通过公开的方式暴露出来的,这可能会让人们认为它使用起来是安全的,这会产生误导,因为不是所有的Java实现都会使用它。例如,LinkedList的OpenJDK6实现没有节点类。相反,它有一个类。节点类不是官方JavaAPI的一部分。这是一个实现细节,因此通过将

java有一个从不导出的节点类,它使用和迭代器允许客户端循环查看详细信息。为什么节点类不是公共的?如果有什么理由选择这种方式,你的想法是什么


节点类不是官方Java API的一部分。这是一个实现细节,因此通过将其设置为私有来隐藏它。如果它是通过公开的方式暴露出来的,这可能会让人们认为它使用起来是安全的,这会产生误导,因为不是所有的Java实现都会使用它。例如,
LinkedList
的OpenJDK6实现没有
节点
类。相反,它有一个类。

节点类不是官方JavaAPI的一部分。这是一个实现细节,因此通过将其设置为私有来隐藏它。如果它是通过公开的方式暴露出来的,这可能会让人们认为它使用起来是安全的,这会产生误导,因为不是所有的Java实现都会使用它。例如,
LinkedList
的OpenJDK6实现没有
节点
类。相反,它有一个类。

它只用于
LinkedList的内部实现,不用于公共用途


LinkedList
实现的任何接口都不需要
节点
类,因此完全可以隐藏此类细节。

它仅用于
LinkedList
的内部实现,不用于公共用途


LinkedList
实现的接口都不需要
节点
类,因此隐藏这些细节是完全可以的。

这是一个实现细节。信息隐藏、封装作为一个抽象,您希望看到列表中包含的元素;它们的存储方式对外部观察者来说并不重要(也不应该),因此节点对外部程序员是隐藏的。相反,LinkedList上的函数实现了所有的节点魔法,让程序员只关注列表的概念。这是一个实现细节。信息隐藏、封装作为一种抽象,您希望看到列表中包含的元素;它们的存储方式对外部观察者来说并不重要(也不应该),因此节点对外部程序员是隐藏的。相反,LinkedList上的函数完成了所有的节点魔法,让程序员只关注列表的想法。是的,这是一个好的观点,我们还可以在未来的版本中自由修改内部,而不会中断dependents@JavaDeveloper-是的。比较您的源代码链接和我的源代码链接,OpenJDK似乎将JDK6和JDK7之间的内部名称从
Entry
更改为
Node
。是的,这是一个很好的观点,我们还可以在未来的版本中自由修改内部,而不会中断dependents@JavaDeveloper-是的。比较您的源代码链接和我的源代码链接,OpenJDK似乎将JDK6和JDK7之间的内部名称从
Entry
更改为
Node
。是的,这意味着只有linkedlist才需要Node,它只是实现集合接口的具体类之一。没有其他像arraylist这样的concreate类需要使用Node类。是的,这意味着只有linkedlist才需要Node,它只是实现集合接口的具体类之一。没有其他像arraylist这样的concreate类需要使用Node类。