知识卡片

泛型符号E与Object父类的本质区别

普通读书笔记卡 · 1991.b

内容

java.util.Iterator接口的next()返回类型是泛型符号E而非Object。E代表某种类型,由实现类 声明时决定,在编译期就固定类型约束;Object是所有类的真实父类,天然通用但需要向下转型 才能调用专属方法,把类型判断推迟到运行期。发散:这是理解Java泛型价值的切入点——保留 通用容器灵活性的同时把类型安全检查提前到编译期。

参考来源

- 位置:《设计模式之禅(第2版)》第20章《迭代器模式》(源文件:_epub-src/text/part0090.html) - 结论依据:原文专门解释java.util.iterator接口next()方法的泛型返回值E与ConcreteIterator实际返回IProject之间的关系,说明"E是JDK 1.5中定义的新类型:元素(Element),是一个泛型符号……它与Object这个类可是不同的,Object是所有类的父类……而E是一个符号,代表所有的类"。 - 原始内容:E是JDK 1.5中定义的新类型:元素(Element),是一个泛型符号,表示一个类型,具体什么类型是在实现或运行时决定……它与Object这个类可是不同的,Object是所有类的父类,随便一个类你都可以把它向上转型到Object类……而E是一个符号,代表所有的类,当然也代表Object了。