泛型类的类型为什么不能是基本类型

2024-11-20 20:23:10
推荐回答(1个)
回答1:

你说的是类似这样的吧:
List list=new ArrayList();//这里,这样是错误的
list.add(0);
list.add(1);
泛形要求能包容的是对象类型,而基本类型在java里不属于对象。但是基本类型都有其包装类型,也就是对象类型:
int->Integer
long->Long
....
那么你要想存放基本类型就用其包装类型去实现功能:
List list=new ArrayList();
list.add(0);
list.add(1);

你说的自动封箱是在对基本类形和包装类型操作的时候才有的,比如你直接把两个Integer类型的数据相加,在jdk1.5之前是不允许的。而泛型和自动封箱没有关系。