我对 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;
}
....
为什么这里泛型参数类型是 {Item} 而不是 {Node} ?毕竟,它是我们正在迭代的节点。
最佳答案
不,Node
只是一个实现细节。请注意它是一个 private
类。您将无法在 Stack
外部访问它。
假设您有一堆书。您将迭代书籍,而不是保存这些书籍的节点。这会破坏封装。
关于java - 泛型参数、项目还是节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28336353/