哪个是更好的实践 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 回答