哪个是更好的实践 Boolean.valueOf()和Java 1.5 autoboxing创造Boolean,booleans为什么?
1318 次
1 回答
14
自动装箱由编译器boolean透明地转换为Boolean.valueOf():
boolean b = true;
Boolean bb = b;
被翻译成:
iconst_1
istore_1 //b = 1 (true)
iload_1 //b
invokestatic #2; //Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore_2 //bb = Boolean.valueOf(b)
使用您认为更有用和更易读的任何一个。由于 usingBoolean.valueOf()除了额外的打字之外没有给你任何东西,你应该瞄准自动装箱。
当您考虑相反的转换 - 从Boolean到时,情况会变得复杂boolean。这个时间Boolean.booleanValue()是编译器为你透明调用的,理论上可以导致NullPointerException.
于 2012-07-26T16:38:35.083 回答