✎
编程开发网
首页
C语言
C++
面试
Linux
函数
Windows
数据库
下载
搜索
当前位置:
首页
->
AI编程基础
->
JAVA
J2SE 5.0专题 之 语言特性(二)
2014-11-23 23:22:37
·
作者:
·
浏览:
1
标签:
J2SE
5.0
专题
语言
特性
public class TestGenerics
{
Collection
col;
public void doSth(E elem) {
col.add(elem);
// ...
}
}
在泛型的使用中,有一个很容易有的误解,那就是既然Integer是从Object派生出来的,那么ArrayList
当然就是ArrayList
的子类。真的是这样吗?我们仔细想一想就会发现这样做可能会带来的问题:如果我们可以把ArrayList
向上转型为ArrayList
,那么在往这个转了型以后的ArrayList中添加对象的时候,我们岂不是可以添加任何类型的对象(因为Object是所有对象的公共父类)?这显然让我们的ArrayList
失去了原本的目的。于是Java编译器禁止我们这样做。那既然是这样,ArrayList
以及ArrayList
、ArrayList
等等有没有公共的父类呢?有,那就是ArrayList< >。 在这里叫做通配符。我们为了缩小通配符所指代的范围,通常也需要这样写:ArrayList< extends SomeClass>,这样写的含义是定义这样一个类ArrayList,比方说SomeClass有SomeExtendedClass1和SomeExtendedClass2这两个子类,那么ArrayList< extends SomeClass>就是如下几个类的父类:ArrayList
、ArrayList
和ArrayList
。
接下
首页
上一页
1
2
下一页
尾页
2
/2/2