栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

枚举和枚举之间的区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

枚举和枚举之间的区别?

拥有其中一种后,您在做什么上没有实际差异,因为type参数仅在“输出”位置使用。另一方面,在您可以 用作 其中一个的方面有很大的不同。

假设您有一个

Enumeration<JarEntry>
-您无法将其传递给
Enumeration<ZipEntry>
作为其参数之一的方法。您 可以
将其传递给采用方法
Enumeration<? extends ZipEntry>

当您有一个在输入和输出位置都使用type参数的类型时,这会更有趣-

List<T>
这是最明显的例子。这是参数有变化的方法的三个示例。在每种情况下,我们都会尝试从列表中获取一项,然后添加另一项。

// Very strict - only a genuine List<T> will dopublic void Foo(List<T> list){    T element = list.get(0); // Valid    list.add(element); // Valid}// Lax in one way: allows any List that's a List of a type// derived from T.public void Foo(List<? extends T> list){    T element = list.get(0); // Valid     // Invalid - this could be a list of a different type.     // We don't want to add an Object to a List<String>    list.add(element);   }// Lax in the other way: allows any List that's a List of a type// upwards in T's inheritance hierarchypublic void Foo(List<? super T> list){    // Invalid - we could be asking a List<Object> for a String.    T element = list.get(0);    // Valid (assuming we get the element from somewhere)    // the list must accept a new element of type T    list.add(element);}

有关更多详细信息,请阅读:

  • Java语言泛型指南
  • Java泛型教程(PDF)
  • Java泛型常见问题解答 -特别是有关通配符的部分


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/509017.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号