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

Vik*_*Vik 8 java casting boolean

我有一个代码作为

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());
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*eet 12

不,当您将原始值装入其等效包装类型时,结果永远不会为空.

  • 那是因为原始类型****永远不会为空. (2认同)

Jig*_*shi 8

,

原因:原始永远不会保持为null因此将它们转换为Wrapper 永远不会导致NPE,

而且也不需要将它自动装箱

  • 它与默认值无关.它与原始类型是值类型的事实有关 - `int`变量的值是整数本身,而不是引用...所以它怎么可能是`null`? (2认同)
  • life.java:对我来说,这让事情变得更加困惑,而不是让事情变得更加清晰.值类型和引用类型之间的差异与默认值几乎没有关系. (2认同)