Как указывалось в предыдущих ответах, Boolean.TRUE
возвращает объект обертку с логическим значением true
, поэтому для контекстов, где нам нужно обрабатывать логические объекты, подобные (например, имеющие * 1005)* логических значений), мы могли бы использовать Boolean.TRUE
или Boolean.FALSE
. Почему:
boolean boolVar = Boolean.TRUE;
действительно из-за Autoboxing и Unboxing .
Короче говоря, Java-компилятор, когда видит, что вы рассматриваете примитив как объект, такой как
List<Boolean> listOfBoolean = new ArrayList<Boolean>();
boolean someBool = true;
listOfBoolean.add(someBool);
, автоматически оборачивает его или autobox это
List<Boolean> listOfBoolean = new ArrayList<Boolean>();
boolean someBool = true;
listOfBoolean.add(Boolean.valueOf(someBool));
И если он увидит, что вы рассматриваете объект-оболочку, например Boolean.TRUE
, как примитив, например:
boolean boolVar = Boolean.TRUE;
, он преобразует его в примитив или распаковать это, как если бы мы это сделали:
boolean boolVar = Boolean.TRUE.booleanValue();
Когда-то вам приходилось делать это вручную, но сейчас, к лучшему или к худшему, в основном это делаетсяЗабота о вас.
И если вам интересно, почему вообще есть Boolean.TRUE
, это потому, что нет необходимости иметь плавающие вокруг множества логических объектов для true
.Так как логическое значение может быть только одним из двух значений, проще просто иметь их как константы, а не каждый раз, когда кому-то нужно упаковать true
:
Boolean trueBool = new Boolean(true);