在java中将布尔值转换为布尔值

时间:2010-10-20 12:36:46

标签: java boolean casting

我的代码为

public class BooleanTest {
    public BooleanTest() {
        super();
    }


    public static void main(String args[]){
      BooleanTest bt = new BooleanTest();
      bt.doProcess();

    }

    private boolean method() {
        return false;
    }

    private void doProcess() {
      Boolean obj = (Boolean)method();
      System.out.println(obj.booleanValue());
    }
}

问题是可以在任何情况下System.out.println(obj.booleanValue());抛出NullPointerException吗?

4 个答案:

答案 0 :(得分:12)

不,当您将原始值打包到其等效的包装器类型中时,结果永远不会为空。

答案 1 :(得分:8)

原因:原语永远不会为空,因此将它们转换为Wrapper 永远不会导致NPE,

并且无需等待它将autobox

答案 2 :(得分:3)

它永远不会抛出NPE,如果你使用java> = 1.5,你也不需要抛出它。它被称为autoboxing,它是从JDK 1.5引入的。

答案 3 :(得分:2)

只是为了迂腐,你可能已经将System.out设置为null,然后该行将生成一个NPE。

但这很奇怪。