无法将布尔字段明确设置为null

时间:2019-02-22 06:29:35

标签: java boolean

我有这个:

  public static class RaceParam {

    boolean keep = null; // does not compile

  }

之所以无法编译,是因为您无法将null分配给基本类型。这就引出了一个问题,当我们这样做时,将保持什么价值?

  public static class RaceParam {

    boolean keep;

  }

默认为false还是true?似乎很危险,默认为默认值。

3 个答案:

答案 0 :(得分:4)

boolean默认为false

boolean是一个原始变量,只能保存值 true false 。默认值为 false

boolean keep;  // Defaults to `false`.

如果要分配空值,请使用包装器类Boolean。例如:

Boolean keep = null;

答案 1 :(得分:3)

来自jls 4.12.5. Initial Values of Variables

  

每个类变量,实例变量或数组组件在创建时均使用默认值初始化

     

对于布尔类型,默认值为false。

答案 2 :(得分:-1)

与任何其他对象一样,Boolean keep的默认值为null。您必须对其进行显式初始化。