问题描述
为什么private Boolean shouldDropTables;默认给变量赋值true而不是NULL,就像写private Integer anInteger的时候;?
Why does private Boolean shouldDropTables; assign true by default to the variable instead of NULL, like when writing private Integer anInteger;?
我之所以问,是因为我遇到了一些代码,其中对 shouldDropTables 布尔变量进行评估是 NULL 或不确定是否执行方法.
I am asking because I came across some code where there was an evaluation on a shouldDropTables Boolean variable being NULL or not determining whether to execute a method.
推荐答案
Boolean(带有大写'B')是一个布尔对象,如果没有赋值,默认为null.boolean(带有小写b")是一个布尔原语,如果没有赋值,则默认为 false.
Boolean (with a uppercase 'B') is a Boolean object, which if not assigned a value, will default to null. boolean (with a lowercase 'b') is a boolean primitive, which if not assigned a value, will default to false.
Boolean objectBoolean; boolean primitiveBoolean; System.out.println(objectBoolean); // will print 'null' System.out.println(primitiveBoolean); // will print 'false'