Java-自动装箱

      类型参数必须被实例化为引用类型,因此Java有一种特殊机制来使泛型代码能够处理原始数据类型。我们还记得Java的封装类型都是原始数据类型所对应的引用类型:Boolean、Byte、Character、Double、Float、Integer、Long和Short分别对应着boolean、byte、char、double、float、int、long和short。在处理赋值语句、方法的参数和算术逻辑表达式时,Java会自动在引用类型和对应的原始数据类型之间进行转换。在这里,这种转换有助于我们同时使用泛型和原始数据类型。例如

Stack<Integer> stack = new Stack<Integer>();
stack.push(17);
int i = stack.pop();

  自动将一个原始数据类型转换为一个封装类型被称为自动集装箱,自动将一个封装类型转换为一个原始数据类型被称为自动拆装箱。在这个例子中,当我们将一个原始类型的值17传递给push()方法时,Java将它的类型自动转换(自动装箱)为Integer。pop()方法返回一个Integer类型的值,Java在将它赋予变量i之前将它的类型自动转换(自动拆箱)为了int。

posted @ 2018-09-20 23:12  DIMSUMBOY  阅读(474)  评论(0编辑  收藏  举报