为什么private Boolean shouldDropTables;
默认情况下会将true
分配给变量而不是NULL
,就像写private Integer anInteger;
时一样?
我问的是因为我遇到了一些代码,其中对shouldDropTables
布尔变量进行评估NULL
或者不确定是否执行方法。
答案 0 :(得分:87)
布尔值(带有大写的“B”)是一个布尔对象,如果没有赋值,则默认为null。 boolean(带小写的'b')是一个布尔基元,如果没有赋值,则默认为false。
Boolean objectBoolean;
boolean primitiveBoolean;
System.out.println(objectBoolean); // will print 'null'
System.out.println(primitiveBoolean); // will print 'false'
答案 1 :(得分:12)
否强>
默认情况下,布尔值为null
。
答案 2 :(得分:4)
默认情况下为NULL。因为它是一个布尔对象。
Object 'Boolean' = NULL value // By default,
Primitive type 'boolean' = false value // By default.
答案 3 :(得分:3)
也许你没有看到一些初始化。
默认情况下为null。请参阅此示例:
$ cat B.java
class B {
private Boolean shouldDrop;
public static void main( String ... args ) {
System.out.println( new B().shouldDrop );
}
}
$ javac B.java
$ java B
null
我希望有帮助
答案 4 :(得分:3)
我只想为原始boolean
变量添加一个点(对于初学者)。
当@ 99tm回答时,默认值为“false”。这对于实例或类变量是正确的。
如果您将方法局部变量(即方法的本地变量)作为基元boolean
,则没有默认值且它不是Object
,因此它也不能为空。
您必须在使用之前对其进行初始化,否则会出现编译错误。
答案 5 :(得分:2)
JLS 9, 4.12.5. Initial Values of Variables
对于类型boolean,默认值为false。
对于所有引用类型(§4.3),默认值为null。
Boolean
是引用类型,因此默认值为null
。