基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦):
在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了。
那什么是装箱和拆箱呢?我们分别来看下
装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱
拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱
在实际转换时,使用Integer类的构造方法和Integer类内部的intValue方法实现这些类型之间的相互转换,实现的代码如下:
int n = 10; Integer in = new Integer(100); //将int类型转换为Integer类型 Integer in1 = new Integer(n); //将Integer类型的对象转换为int类型 int m = in.intValue();
JDK5.0的一个新特性是自动装箱和自动拆箱。
?自动装箱
?- 基本类型就自动地封装到与它相似类型的包装中,如:Integer i = 100;
?- 本质上是,编译器编译时自动添加:Integer i = new Integer(100);
?自动拆箱
?- 包装类对象自动转换成基本数据类型。如:int a = new Integer(100);
?- 本质是上,编译器编译时自动添加:int a = new Integer(100).intValue();
在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。
其中,基本类型转换为字符串有三种方法:
1. 使用包装类的?toString() 方法
2. 使用String类的?valueOf() 方法
3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串
再来看,将字符串转换成基本类型有两种方法:
1. 调用包装类的?parseXxx?静态方法
2. 调用包装类的?valueOf() 方法转换为基本类型的包装类,会自动拆箱