betweenExclusive()
is a ComparableUtils
class that returns a predicate for the passed value. The predicate checks whether the given value is in the range or not.
Note: Refer to What is a Java predicate? to learn more about predicates in Java.
ComparableUtils
The definition of ComparableUtils
can be found in the Apache Commons Lang
package, which we can add to our Maven project by adding the following dependency to the pom.xml
file:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
Note: For other versions of the
commons-lang
package, refer to the Maven Repository.
You can import the ComparableUtils
class as follows:
import org.apache.commons.lang3.compare.ComparableUtils;
public static <A extends Comparable<A>> Predicate<A> betweenExclusive(final A b, final A c)
This method returns a predicate that checks whether the following condition is true
or false
:
(b < a < c) or (b > a > c)
b
and c
are the parameters of the between
method.a
is the input to the predicate.Note: Refer to What is ComparableUtils.between in Java? for a range inclusive comparison.
final A b
: This is the object to compare to the tested object.final A c
: This is the object to compare to the tested object.This method returns a predicate.
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>test</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>Main</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
The Maven dependency for ComparableUtils
is included in the pom.xml
file.
Let’s look at the explanation of the code in Main.java
:
b
.c
.b
and c
as the parameters to the ComparableUtils.betweenExclusive()
method. This returns a predicate called betweenPredicateExclusive
.testVal
.test()
method of the predicate and test whether testVal
is in the range (b, c)
. We print the result of the comparison.