java - 泛型参数、项目还是节点?

标签 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;
}
 ....

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

最佳答案

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

假设您有一堆书。您将迭代书籍,而不是保存这些书籍的节点。这会破坏封装。

关于java - 泛型参数、项目还是节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28336353/

相关文章:

c++ - 是否可以访问从给定迭代器到 vector 的底层指针?

c++ - std::back_insert_iterator 可以用在 std::ostream 上吗?

java - 在非单例 bean 上的 Spring 代理上修复 BeanNotOfRequiredTypeException?

c# - Net core通用存储库模式如何在编译时不知道其类型的情况下注入(inject)DbContext?

while-loop - Nim : works when assigning the iterator, 中的迭代器生成函数在直接调用时卡住

java - ExecutorService 未经检查的分配

generics - 如果我已经为 U 实现了 From<T>,Rust 是否为 Vec<U> 实现了 From<Vec<T>>?

java - 使用 Eclipse 开发插件时目标平台和依赖项之间的区别

java - Citrus Framework - 无法解析 JSON 数据字典

java - 如何向此通用集合添加子类型?