对象包装器与自动装箱

2017-11-11  本文已影响0人  很很狠的狠角色

所有基本数据类型都有一个与之对应的类,这些类称为包装器。Integer,Long,Float,Double,Short,Byte,Character,Void,Boolean(前6个类派生于公共的超类Number)
对象包装器类是不可变的,一旦构造了包装器,就不允许更改包装在其中的值。同时,包装器类还是final,因此不能定义它们的子类。如果想编写一个修改数值的方法,就需要使用在org.omg.CORBA包中定义的持有者类型(holder),包括IntHolder,BooleanHolder等。每个持有者类型都包含一个共有域值,通过它可以访问存储在其中的值。

public static void triple(IntHolder x)(
x.value = 3 * x.value;
)

java.lang.Integer

java.text.NumberFormat

自动装箱与拆箱

ArrayList<Integer> list = new ArrayList<>();
list.add(3);将自动变换成
list.add(Integer.valueOf(3));这种变换被称为自动装箱(autoboxing)
将一个Integer赋值给一个int值,将会自动拆箱。
int n = list.get(i);
翻译成
int n = list.get(i).intValue();

上一篇下一篇

猜你喜欢

热点阅读