A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄克帅 中级黑马   /  2012-6-10 23:49  /  1126 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1 关于泛型的参数传递性的问题,一直不是很懂,那位高手给详细说一下
public class ClassAnnotation {
        public static void main(String[] args) {

               
               
                copy1(new ArrayList<String>(), new String[9]);
                copy2(new Date[9],new String[9]);
                copy1(new ArrayList<Integer>(), new String[9]);//这里为什么编译会报错,视频没有看懂
       
        }
       
        public static <T> void copy1(Collection<T> c, T[] s){
               
        }
       
        public static <T> void copy2(T[] s1, T[] s2){
               
        }
}

2 泛型参数化类型不考虑参数的继承关系,可是为什么又可以<? extends XXX>  这里不就有继承的关系在里面吗?

1 个回复

正序浏览
在JDK1.5的集合类希望你再定义集合时,明确表示你要向集合中装哪种类型的数据,无法加入指定类型以外的数据.但是jdk1.5版本里也定义了一个泛型中的“?”通配符的方式,可以指向任意类型,不管传什么类型,都可以接收。当然通配符还可以限定,目前我还在学习这个视频当中。我知道也就这些,希望对你有帮助
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马