我有这个:
public static class RaceParam {
boolean keep = null; // does not compile
}
之所以无法编译,是因为您无法将null分配给基本类型。这就引出了一个问题,当我们这样做时,将保持什么价值?
public static class RaceParam {
boolean keep;
}
默认为false还是true?似乎很危险,默认为默认值。
答案 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。您必须对其进行显式初始化。