The Java's Boolean class
As of Java 9 the Boolean class constructors have become deprecated
and when we want to use Boolean instances we use Boolean.TRUE or
Boolean.FALSE constants.
We can get one of these constants from a primitive using the
Boolean.valueOf() method.
System.out.println(Boolean.valueOf(true) == Boolean.TRUE); // true
System.out.println(Boolean.valueOf(false) == Boolean.FALSE); // true
This method also accepts a String that, if it equals the word true,
ignoring if the letters are uppercase or lowercase, the result will be equal to
Boolean.TRUE, otherwise it will be Boolean.FALSE.
System.out.println(Boolean.valueOf("true") == Boolean.TRUE); // true
System.out.println(Boolean.valueOf("TRUE") == Boolean.TRUE); // true
System.out.println(Boolean.valueOf("TrUe") == Boolean.TRUE); // true
System.out.println(Boolean.valueOf("false") == Boolean.FALSE); // true
System.out.println(Boolean.valueOf("") == Boolean.FALSE); // true
System.out.println(Boolean.valueOf(null) == Boolean.FALSE); // true
The Boolean.parseBoolean() method also accepts a String and
works the same way, but returns a primitive instead of an object.
Using in expressions
We can use a Boolean directly in places where booleans expressions are
expected, such as in if or while conditions.
Boolean value = Boolean.TRUE;
if (value) {
// ...
}
while (value) {
// ...
}
But be aware that as a Boolean can be null, a NullPointerException can be
thrown.
Boolean value = null;
if (value) { // will throw NullPointerException
// ...
}
Other cool static methods
The Boolean.logicalAnd() method is equivalent to using the &&
operator and returns true only if both values are true.
System.out.println(Boolean.logicalAnd(true, true)); // true
System.out.println(Boolean.logicalAnd(true, false)); // false
System.out.println(Boolean.logicalAnd(false, true)); // false
System.out.println(Boolean.logicalAnd(false, false)); // false
The Boolean.logicalOr() method is equivalent to using the ||
operator and returns true if at least one of the values is true.
System.out.println(Boolean.logicalOr(true, true)); // true
System.out.println(Boolean.logicalOr(true, false)); // true
System.out.println(Boolean.logicalOr(false, true)); // true
System.out.println(Boolean.logicalOr(false, false)); // false
The Boolean.logicalXor() methods is equivalent to using the ^
operator and returns true only if one of the values is true.
System.out.println(Boolean.logicalXor(true, true)); // false
System.out.println(Boolean.logicalXor(true, false)); // true
System.out.println(Boolean.logicalXor(false, true)); // true
System.out.println(Boolean.logicalXor(false, false)); // false
The Boolean.getBoolean() method is used to return a
System Property as a boolean primitive following to same rules as the
Boolean.parseBoolean() method.
It is possible to pass to the program arbitrary System Properties using the
-D option at runtime.
// Compile and run with the command below.
// java -Daaa=true -Dbbb=false Program
public class Program {
public static void main(String... args) {
System.out.println(Boolean.getBoolean("aaa")); // true
System.out.println(Boolean.getBoolean("bbb")); // false
}
}