开发出高质量的系统
Jdk1.5中支持了泛型,在泛型的使用过程中经常会遇到这样一类问题
调用的地方
你会发现编译错误,但是在我们的需求中Child的集合类是可以代替Parent的集合类来使用的,但是因为编译器不认同,因为两个集合类之间没有直接的继承关系。如果实现呢?在Jdk1.5的Source中我们找到了答案,随便找一个带有泛型的类,点进去可以看到泛型的定义,例如ArrayList<E> HashMap<K,V> 等等这里以ArrayList为例:注意addAll这个函数
ok,明白了,这个就是问号的作用.更改我们的函数
posted on 2007-02-10 23:46 dreamstone 阅读(8665) 评论(2) 编辑 收藏 所属分类: jdk相关
原来还有这个东西,学到了,赞 回复 更多评论
谢谢,解惑了,?号是为了解决java泛型中List<String> 不是List<Object>子类,这样关系的权宜之计。网上查到的资料采用类型擦除这样的设计,是为了向前兼容,所以有了上述违法LSP原则的设计。 回复 更多评论
Powered by: BlogJava Copyright © dreamstone