- boolean getAsBoolean() :- it returns a boolean value and has no input parameters.
BooleanSupplier alwaysReturnTrue = () -> true;Implementaion 2 :- This implementation, always returns false. It is a pure function, with no side effects.
BooleanSupplier alwaysReturnFalse = () -> false;We are going to create a class, which creates a boolean supplier based on condition coming from outside. This class will have a constructor, which takes one input and based on that it creates a BooleanSupplier. For this article, I am just passing a simple value of true or false. In practical scenario, this outside condition can be provided by state changes occurring somewhere else. This is our class.
static class BooleanSupplierCreator {
private final boolean BOOL;
BooleanSupplierCreator(final boolean BOOL) {
this.BOOL = BOOL;
}
BooleanSupplier getBooleanSupplier() {
return () -> BOOL ;
}
}
It has a getBooleanSupplier method, which returns a BooleanSupplier implementation.
We can use it to create different BooleanSupplier implementations.
The idea of this example is to show a different usage of BooleanSupplier.
Implementaion 3 :- Get a boolean supplier, which always returns true.
BooleanSupplier trueBooleanSupplier = (new BooleanSupplierCreator( true ))
.getBooleanSupplier();
Implementation 4 :- Get a boolean supplier, which always returns false.
BooleanSupplier falseBooleanSupplier = (new BooleanSupplierCreator( false ))
.getBooleanSupplier();
The main usage of this Interface could be for creation of BooleanStreams, like we have IntStreams. I am saying it from my own coding experiences.
And, we can always be creative with the usage.
Like, we can create a true-false SWITCH using BooleanSupplier.
Complete Code
import java.util.function.BooleanSupplier;
import static java.lang.System.out;
public class BooleanSupplierTest {
public static void main(String ... args) {
BooleanSupplier alwaysReturnTrue = () -> true;
BooleanSupplier alwaysReturnFalse = () -> false;
out.println("GET Boolean from alwaysReturnTrue - " + alwaysReturnTrue.getAsBoolean());
out.println("GET Boolean from alwaysReturnFalse - " + alwaysReturnFalse.getAsBoolean());
BooleanSupplier trueBooleanSupplier = (new BooleanSupplierCreator( true )).getBooleanSupplier();
BooleanSupplier falseBooleanSupplier = (new BooleanSupplierCreator( false )).getBooleanSupplier();
out.println("GET Boolean from trueBooleanSupplier - " + trueBooleanSupplier.getAsBoolean());
out.println("GET Boolean from falseBooleanSupplier - " + falseBooleanSupplier.getAsBoolean());
}
static class BooleanSupplierCreator {
private final boolean BOOL;
BooleanSupplierCreator(final boolean BOOL) {
this.BOOL = BOOL;
}
BooleanSupplier getBooleanSupplier() {
return () -> BOOL ;
}
}
}
Output
GET Boolean from alwaysReturnTrue - true GET Boolean from alwaysReturnFalse - false GET Boolean from trueBooleanSupplier - true GET Boolean from falseBooleanSupplier - false