What is ComparableUtils.betweenExclusive in Java?

Overview

betweenExclusive() is a staticThese are the methods in Java that can be called without creating an object of the class. method of the 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.

How to import 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;

Syntax


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.
  • In this method, the range is exclusive.

Note: Refer to What is ComparableUtils.between in Java? for a range inclusive comparison.


Parameters

  • 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.

Return value

This method returns a predicate.

Code

<?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>
Example code

Code explanation

The Maven dependency for ComparableUtils is included in the pom.xml file.

Let’s look at the explanation of the code in Main.java:

  • Lines 1–2: We import the relevant classes.
  • Line 7: We define the integer value b.
  • Line 8: We define the integer value c.
  • Line 9: We pass b and c as the parameters to the ComparableUtils.betweenExclusive() method. This returns a predicate called betweenPredicateExclusive.
  • Line 10: We define an integer test value called testVal.
  • Line 11: We use the test() method of the predicate and test whether testVal is in the range (b, c). We print the result of the comparison.

Free Resources