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 泛型通配符 ? EXTENDS SUPER 的用法