Java泛型问题,求帮助. API中经常看到 Matcher<? super T>, Iterable<? extends T>, Map<?,? extends V>, Map<? extends K,? extends V>,谁能解释下, ?,T,K,V是什么? <? super T> 表示什么? <? extends T>表示什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 都没有正规的意思,只是一般用表示某种意思,像我们一般会把时间的变量设置为date这K 一般是指键对象 V一般是指值对象 而T是指任意对象 Map <String , Object> 代表key为String类型,value为Object 1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。 2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。 3、泛型的类型参数可以有多个。 4、泛型的参数类型可以使用extends语句,例如<T extends superclass>。习惯上称为“有界类型”。 5、泛型的参数类型还可以是通配符类型。例如Class<?> classType = Class.forName("java.lang.String"); T,K,V是什么? T,K,V都是类的类型,一般T表示类,K代表键值中的键,V代表键值中的值<? super T> 表示什么规定了泛型的下界T,也就是说这里面保存的所有对象都可以看作是T的某个确定父类的实例,添加的时候不会限制,但是获取的时候会限制。使用场景:A定义了一个接口容器,由外界传给A,A只往这个容器里面保存类型T的子类型,那么A就必须确保传入的容器必须能装得下T。也就是下界为T,只有这样才不会出错,泛型转换的时候才不会出错<? extends T>表示什么规定了泛型的上界T,也就是说这里面保存的所有对象都可以看作是T的某个确定子类的实例,添加的时候会做限制,获取的时候不会做限制。使用场景:A定义了一个接口容器,A只读取这个接口,由于获取是不做限制的,所以A能够读取接口容器里面的东西都是T,而不关心这个容器里面具体保存的是T的哪个子类的对象。而B来实现这个接口,至于具体保存了T的哪一个子类对象,是由B来决定的可以参考http://blog.csdn.net/daniel_h1986/article/details/5708605 SSH中,action引用service时,是定义具体的还是抽象的? 游戏程序员 一起进 QQ群:中国J2EE研发中心②号群正式成立!欢迎大家的加盟…… web项目服务端“推”数据给client端问题 weblogic 与 tomcat log4j问题! hibernate+spring的配置文件问题 小弟刚刚学习了Servlet的会话跟踪,有一点体会,怕有错,望各位指正并详解! 在JBX下,如何建立EJB中SESSION BEAN和实体BEAN的本地引用?(搞定马上结贴) EJB技术对大批量数据的处理 探讨单例模式的利与弊 关于Oracle中数据类型为Timestamp的数据
这K 一般是指键对象 V一般是指值对象 而T是指任意对象
T,K,V都是类的类型,一般T表示类,K代表键值中的键,V代表键值中的值<? super T> 表示什么
规定了泛型的下界T,也就是说这里面保存的所有对象都可以看作是T的某个确定父类的实例,添加的时候不会限制,但是获取的时候会限制。
使用场景:A定义了一个接口容器,由外界传给A,A只往这个容器里面保存类型T的子类型,那么A就必须确保传入的容器必须能装得下T。也就是下界为T,只有这样才不会出错,泛型转换的时候才不会出错<? extends T>表示什么
规定了泛型的上界T,也就是说这里面保存的所有对象都可以看作是T的某个确定子类的实例,添加的时候会做限制,获取的时候不会做限制。
使用场景:A定义了一个接口容器,A只读取这个接口,由于获取是不做限制的,所以A能够读取接口容器里面的东西都是T,而不关心这个容器里面具体保存的是T的哪个子类的对象。而B来实现这个接口,至于具体保存了T的哪一个子类对象,是由B来决定的
可以参考
http://blog.csdn.net/daniel_h1986/article/details/5708605