第一,基本数据类型之间的相互转换不是都可以制动转换的,而你强制转换又会出问题,比如String类型的转换为int类型的,那么jdk为了方便用户就提供了相应的包装类。
例子:
public class Integer{
private int i;
public Integer(int a){
i =a;
}
public static int parseToInt(){
return i;
}
public static Integer valueOf(String str){
//封装一系列的逻辑最终将str转换成int类型的IntegerStr
return new Integer(IntegerStr);
}
}
上面是jdk关于Integer的一个例子 比如Integer intg = Integer.valueOf(str); int i = intg.parseToInt();
这样用户就很方便的完成了 String和int的转换 这样就方便了用户
第二,有时候一个函数需要传递一个Object的变量 而你想传递int类型的进去显然不行,怎么办呢,用到了包装类。
public void test(Object obj){
}
你想传递5进去就可以这样
test(new Integer(5));
综上所述,包装类有三个用法 一个实现基本类型之间的转换 二是便于函数传值 三就是在一些地方要用到Object的时候方便将基本数据类型装换
一):它们的区别是:Integer是一个引用类型,而一个int是一个值类型
二):以List为例,大家都知道一个动态数组的add(Object o)方法只能接受一个引用类型,即一个对象,而怎样把一个数字放到一个动态数组里面…,相信到这里你已经明白了为什么一个值类型会有一个对应的包装类了吧。。。
三):包装类还有一个重要的功能,就是适配器,这里以一个String类型—>到Integer类型,我们知道要想把一个String类型转换一个int类型的数据,new Integer(String).intValue();或者直接调用它的静态方法Integer.parse(String)方法