自动装箱(autoboxing)

某些时候,主数据类型无法使用,你必须使用对象(比如ArrayList)所以需要装箱操作。
并且Java5后有autoboxing(自动装箱)为方便人们。

在无autoboxing
public void doNumsOldWay(){
        ArrayList listOfNumbers = new ArrayList ();        //定义ArrayList不指定类型的表
        listOfNumbers .add( new Integer(3));                //加入Integer类型并为装箱传入数据3
        Integer one = (Integer) listOfNumbers .get(0);    //因为没有泛型的概念所以ArrayList传回的类型是Object需要强转
        int One = one .intValue();                         //利用 Integer的方法取出值
    }
有autoboxing
public void doNumsOldWay(){
        ArrayList<Integer> listOfNumbers = new ArrayList<>();       //定义ArrayList不指定类型的表
        listOfNumbers .add(3);                                       //直接传入3,编译器会为我们自动装箱
        int num = listOfNumbers .get(0)   ;                          //泛型的存在,无需转换类型直接取出Integer并且编译器自动拆箱
    }

注意你还是不能ArrayList<int>必须是类或接口类

autoboxing的便捷
方法的参数
    参数是包装类型,你可以传入类或数据类型
     void takeNumber(Integer i ){};//可以传入Intrger或int

返回值
     int giveNumber(){
          return x ;
    }
    x可以是int也可以是Integer

boolean表达式
    if(bool){};
bool可以是Boolean对象或biilean

赋值
    可以将包装类型或数据类型赋值给对应的数据类型或值类型
    Double d = x;//x可以是Integer对象或int

数值运算
    可以在使用primitive主数据作为运算子的操作用包装类型来替换
    Integer i = new Integer(42);
    i ++ ;
也可以
    Integer j = new Integer(5);
    Integer k = j + 5;


也就是autoboxing会在你需要的时候转换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值