12.2.3 数值类型封装器
到目前为止,最常用的封装器是那些表示数值的封装器,包括Byte、Short、
Integer、Long、Float以及Double。所有这些数值类型封装器都继承自抽象类Number。Number声明了以不同数字格式从对象返回数值的方法,如下所示:
例如,doubleValue()方法返回double类型的值, floatValue()方法返回float类型的值,等等。每个数值类型封装器都实现了这些方法。
所有数值类型封装器都定义了用于从给定数值或数值的字符串表示形式构造对象的构造函数。例如,下面是为Integer定义的构造函数:
如果str没有包含有效的数值,就会抛出NumberFormatException异常。
所有类型封装器都重写了toString()方法,用来返回封装器所包含数值的人类可以阅读的形式,从而可以通过将封装器对象传递给println()方法来输出数值。例如,不必将之转换为基本类型。
下面的程序演示了如何使用数值类型的封装器封装数值以及如何提取数值:
这个程序将整型值100封装到Integer对象iOb中,然后程序调用intValue()方法以获取这个数值,并将结果存储到i中。
将数值封装到对象中的过程称为装箱。因此在这个程序中,下面这行代码将数值100装箱到一个Integer对象中:
从类型封装器中抽取数值的过程称为拆箱。例如,这个程序使用下面这条语句拆箱iOb中的数值:
- Integer iOb = new Integer(100);
上述程序使用的装箱和拆箱数值的一般过程,在Java原始版本中就已经提供了。但是,随着JDK 5的发布,Java通过自动装箱从根本上改进了这一过程,下面将对此进行介绍。
- int i = iOb.intValue();