Java里的泛型加通配符的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java里的泛型加通配符的用法相关的知识,希望对你有一定的参考价值。

参考技术A 泛型可以用"<T>"代表,任意类型的。
解释:
“<T>”是泛型的默认值,可以被任意类型所代替,如:
List<String>
list
=
new
ArayList<String>();这个就定义了一个String类型的”泛型“集合,那么T的类型就是字符串。
List<T>
list
=
new
ArayList<T>();
可以赋值给list:list.add("StringBatch");
可以获取到list的值:list.get(0),结果就是”StringBatch“;
这个时候T的类型也是String。也就是说T是动态的,可以被任意指定类型。
参考技术B 规则:
如果你使用了“?
extends
T”,你不能往该数据结构中add元素,但可以get元素。
换句话说,如果你要在list中加入User及其子类,用得着通配符么?!
直接List<User>
list=new
ArrayList<User>();不就得了

java里的泛型和通配符

Iterator<? extends Map.Entry<? extends K, ? extends V>>谁能用中文表达来翻译一下这行代码的意思啊

解释这样的,希望可以被采纳为答案:
1.先解释最中间的括号:某一个对象A继承了K这个类,某一个对象B继承V这个类
2. Map.Entry是map中的一个方法,该方法可以返回一个对象的集合,那么现在得这个集合就是,A,B所组成的集合
3.iterator迭代器类似于for循环,将A,B这个集合迭代出来,取出A,B单独的对象

希望我的回答你满意。
参考技术A 泛型可以用"<T>"代表,任意类型的。
解释: “<T>”是泛型的默认值,可以被任意类型所代替,如:
List<String> list = new ArayList<String>();这个就定义了一个String类型的”泛型“集合,那么T的类型就是字符串。
List<T> list = new ArayList<T>();
可以赋值给list:list.add("StringBatch");
可以获取到list的值:list.get(0),结果就是”StringBatch“;
这个时候T的类型也是String。也就是说T是动态的,可以被任意指定类型。
参考技术B ? extends xxx 就是说任何xxx子类都可以。其他的如果你不明白跟你说也没用了。

以上是关于Java里的泛型加通配符的用法的主要内容,如果未能解决你的问题,请参考以下文章

java里的泛型和通配符

JAVA 泛型通配符 ? EXTENDS SUPER 的用法

第65题必学的泛型2-使用通配符增强泛型

Java 泛型泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )

夯实Java基础系列13:深入理解Java中的泛型

Java的泛型和通配符