黑马程序员技术交流社区
标题:
泛型问题?
[打印本页]
作者:
李柯
时间:
2012-4-14 14:43
标题:
泛型问题?
java泛型中<?>、<T>和<E>的含义,具体有什么区别?
作者:
马强
时间:
2012-4-14 15:58
其实<> 就是用来接收类型的。里面的值<什么字母都行但是一致>
当使用集合时,将集合中要存储的数据类型作为参数传递到<>中即可。
? 通配符。也可以理解为占位符。而且是接受任意,有时候?并不好用,如果限定一下子父类更好
泛型的限定;
? extends E: 可以接收E类型或者E的子类型。上限。
? super E: 可以接收E类型或者E的父类型。下限
静态方法不可以访问类上定义的泛型。
如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。
最后api上<>的都是要定义泛型
作者:
陈志伟
时间:
2012-4-14 16:10
? 表示不确定的java类型,类型是未知的。 T 表示java类型。 E 代表Element,特性是枚举。还有K V,K V 分别代表java键值中的Key Value。
作者:
陈扬
时间:
2012-4-14 17:44
1、<?>接受的是也就是任意类、<T>接受的是指定的类型、E 代表Element,接受的是枚举类型。
注意:
1、如果只指定了<?>,而没有extends,则默认是允许Object及其下的任何Java类了。也就是任意类。
2、通配符泛型不单可以向下限制,如<? extends Collection>,还可以向上限制,如<? super Double>,表示类型只能接受Double及其上层父类类型,如Number、Object类型的实例。 3、泛型类定义可以有多个泛型参数,中间用逗号隔开,还可以定义泛型接口,泛型方法。这些都泛型类中泛型的使用规则类似。
作者:
韩新凯
时间:
2012-4-14 23:00
使用<T>来声明类型持有者名称,自定义泛型类时,类持有者名称可以使用T(Type),如果是容器的元素可以使用E(Element),若键值匹配可以用K(Key)和V(Value)等,若是<?>,则是默认是允许Object及其下的子类,也就是java的所有对象了。
E ---Element (在集合中使用,因为集合中存放的是元素)
K --- Key(键)
N --- Number(数值类型)
T --- Type(Java 类)
V - Value(值)
作者:
胡生蒙
时间:
2012-4-15 00:40
? 表示不确定的java类型。
T 表示java类型。
K V 分别代表java键值中的Key Value。
E 代表Element。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2