Java自动装箱
时间:2020-02-23 14:36:08 来源:igfitidea点击:
Java中的自动装箱是Java 1.5中引入的。
自动装箱和拆箱是一种方便的方法,可以将原始数据类型自动转换为相应的Java包装器类,反之亦然。
Java自动装箱
将原始数据类型转换为相应包装器类的对象称为自动装箱。
例如,将int转换为Integer或者将long转换为Long对象。
当原始值是:Java编译器将应用自动装箱:
作为参数传递给需要相应包装类对象的方法。
例如,可以通过传递int来调用带有Integer参数的方法,java编译器会将int转换为Integer。分配给相应包装器类的变量。
例如,将Long对象分配给long变量。
用Java取消装箱
将包装器类型的对象转换为其对应的原始数据类型的操作称为拆箱。
当包装器类的对象是:
作为参数传递给需要相应原始类型值的方法。
分配给相应原始类型的变量。
Java自动装箱示例
这是一个小型Java程序,显示了Java自动装箱和拆箱的示例。
package com.theitroad.util; import java.util.ArrayList; import java.util.List; public class AutoboxingUnboxing { public static void main(String[] args) { int i = 5; long j = 105L; //passed the int, will get converted to Integer object at Runtime using //autoboxing in java doSomething(i); List<Long> list = new ArrayList<>(); //java autoboxing to add primitive type in collection classes list.add(j); } private static void doSomething(Integer in) { //unboxing in java, at runtime Integer.intValue() is called implicitly to //return int int j = in; //java unboxing, Integer is passed where int is expected doPrimitive(in); } private static void doPrimitive(int i) { } }
注意:始终依赖自动装箱不是一个好主意,有时,当方法重载时,它可能导致编译器错误,即方法不明确。