解决方法
布尔的自动装箱由编译器透明地转换为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)
使用您认为更有用和可读的任何一个.由于使用Boolean.valueOf()除了额外输入外没有给你任何东西,你应该以自动装箱为目标.
当您考虑相反的转换时,情况会变得复杂 – 从布尔值到布尔值.这次,编译器会透明地调用Boolean.booleanValue(),从理论上讲会导致NullPointerException.