到处都用得到autoboxing
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
autoboxing不只是包装与解开primitive主数据类型给collection用而已,它还可以让你在各种地方交换地运用primitive主数据类型与它的包装类型。
1、方法的参数
如果参数是某种包装类型,你可以传入相对应的primitive主数据类型,反之亦然。
void takeNumber(integer i) { }
2、返回值
如来method声明为返回某种primitive主数据类型,你也可以返回兼容的primitive主数据类型或该primitive主数据类型的包装类型。
int giveNumber() {
Integer x;
return x;
}
3、boolean表达式
任何预期boolean值的位置都可以用能够返回boolean的表达式来代替,例如说4>2或是boolean包装类型的引用。
if (bool) {
System.out.println("true");
}
4、数值运算
这或许是最诡异的。你可以对包装类型进行数学运算,也就是说你可以对Integer的对象作递增运算!
Integer i = new Integer(42);
i++;
还可以这么做:
Integer j = new Integer(5);
Integer k = j + 3;
5、赋值
你可以将包装类型或primitive主数据类型赋值给声明成相对应的包装或primitive主数据类型。
int x = 3;
Double d = x;
在线练习
{$ activeFileHint $}