泛型参数,项目或节点?

时间:2015-02-05 04:41:42

标签: java generics iterator

我对Stack

中的泛型参数类型有疑问
public class Stack<Item> implements Iterable<Item> {
private int N;                // size of the stack
private Node<Item> first;     // top of stack

// helper linked list class
private static class Node<Item> {
    private Item item;
    private Node<Item> next;
}
 ....

为什么Generics参数类型在{Item}而不是{Node}?毕竟,正是我们正在迭代的节点

1 个答案:

答案 0 :(得分:2)

不,Node只是一个实现细节。请注意它是private类的。您无法在Stack之外访问它。

假设您有Stack本书。您将遍历书籍,而不是通过持有这些书籍的节点。这会破坏封装。