当前位置:  开发笔记 > 编程语言 > 正文

Java Generics - 它自己的一个子类?

如何解决《JavaGenerics-它自己的一个子类?》经验,为你挑选了1个好方法。

我目前正在阅读Java Generics,而且在通配符方面我有点陷入困境.

我从Collections类中获得了这个方法:

public void  copy(List dest, List src) {
    for(int i = 0; i < src.size(); i++) {
        dest.set(i, src.get(i));
     }
}

然后我被告知有可能像这样调用这个方法:

List objs = new ArrayList();
List ints = new ArrayList();
Collections.copy(objs, ints);


由于类型参数已留给编译器来确定,本书说编译器选择类型参数为Integer.

但那怎么可能呢?

如果它被认为是整数,这意味着在方法声明中 -
List将转换为List.

这是一个错误,还是在考虑泛型时有不同的规则?我用google搜索过,大多数结果都说一个类不能成为它自己的子类.



1> JB Nizet..:

不,这不是错误.

? extends Integer 表示:任何属于或扩展Integer的类(或实现Integer,如果Integer是接口).

同样适用? super Integer,这意味着:任何类是Integer或者是Integer的超类或超级接口.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有