Class Jdk8Methods


  • public final class Jdk8Methods
    extends Object
    A set of utility methods that provide additional functionality for working with dates and times.

    The contents of this class replace functionality available in JDK 8.

    Specification for implementors

    This is a thread-safe utility class. All returned classes are immutable and thread-safe.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static int compareInts​(int a, int b)
      Compares two ints.
      static int compareLongs​(long a, long b)
      Compares two longs.
      static boolean equals​(Object a, Object b)
      Compares two objects.
      static int floorDiv​(int a, int b)
      Returns the floor division.
      static long floorDiv​(long a, long b)
      Returns the floor division.
      static int floorMod​(int a, int b)
      Returns the floor modulus.
      static int floorMod​(long a, int b)
      Returns the floor modulus.
      static long floorMod​(long a, long b)
      Returns the floor modulus.
      static <T> T requireNonNull​(T value)
      Ensures that the argument is non-null.
      static <T> T requireNonNull​(T value, String parameterName)
      Ensures that the argument is non-null.
      static int safeAdd​(int a, int b)
      Safely adds two int values.
      static long safeAdd​(long a, long b)
      Safely adds two long values.
      static int safeMultiply​(int a, int b)
      Safely multiply one int by another.
      static long safeMultiply​(long a, int b)
      Safely multiply a long by an int.
      static long safeMultiply​(long a, long b)
      Multiply two values throwing an exception if overflow occurs.
      static int safeSubtract​(int a, int b)
      Safely subtracts one int from another.
      static long safeSubtract​(long a, long b)
      Safely subtracts one long from another.
      static int safeToInt​(long value)
      Safely convert a long to an int.
    • Method Detail

      • requireNonNull

        public static <T> T requireNonNull​(T value)
        Ensures that the argument is non-null.
        Type Parameters:
        T - the value type
        Parameters:
        value - the value to check
        Returns:
        the checked non-null value
        Throws:
        NullPointerException - if the value is null
      • requireNonNull

        public static <T> T requireNonNull​(T value,
                                           String parameterName)
        Ensures that the argument is non-null.
        Type Parameters:
        T - the value type
        Parameters:
        value - the value to check
        parameterName - the name of the parameter
        Returns:
        the checked non-null value
        Throws:
        NullPointerException - if the value is null
      • equals

        public static boolean equals​(Object a,
                                     Object b)
        Compares two objects.
        Parameters:
        a - the first value
        b - the second value
        Returns:
        the result
      • compareInts

        public static int compareInts​(int a,
                                      int b)
        Compares two ints.
        Parameters:
        a - the first value
        b - the second value
        Returns:
        the result
      • compareLongs

        public static int compareLongs​(long a,
                                       long b)
        Compares two longs.
        Parameters:
        a - the first value
        b - the second value
        Returns:
        the result
      • safeAdd

        public static int safeAdd​(int a,
                                  int b)
        Safely adds two int values.
        Parameters:
        a - the first value
        b - the second value
        Returns:
        the result
        Throws:
        ArithmeticException - if the result overflows an int
      • safeAdd

        public static long safeAdd​(long a,
                                   long b)
        Safely adds two long values.
        Parameters:
        a - the first value
        b - the second value
        Returns:
        the result
        Throws:
        ArithmeticException - if the result overflows a long
      • safeSubtract

        public static int safeSubtract​(int a,
                                       int b)
        Safely subtracts one int from another.
        Parameters:
        a - the first value
        b - the second value to subtract from the first
        Returns:
        the result
        Throws:
        ArithmeticException - if the result overflows an int
      • safeSubtract

        public static long safeSubtract​(long a,
                                        long b)
        Safely subtracts one long from another.
        Parameters:
        a - the first value
        b - the second value to subtract from the first
        Returns:
        the result
        Throws:
        ArithmeticException - if the result overflows a long
      • safeMultiply

        public static int safeMultiply​(int a,
                                       int b)
        Safely multiply one int by another.
        Parameters:
        a - the first value
        b - the second value
        Returns:
        the result
        Throws:
        ArithmeticException - if the result overflows an int
      • safeMultiply

        public static long safeMultiply​(long a,
                                        int b)
        Safely multiply a long by an int.
        Parameters:
        a - the first value
        b - the second value
        Returns:
        the new total
        Throws:
        ArithmeticException - if the result overflows a long
      • safeMultiply

        public static long safeMultiply​(long a,
                                        long b)
        Multiply two values throwing an exception if overflow occurs.
        Parameters:
        a - the first value
        b - the second value
        Returns:
        the new total
        Throws:
        ArithmeticException - if the result overflows a long
      • safeToInt

        public static int safeToInt​(long value)
        Safely convert a long to an int.
        Parameters:
        value - the value to convert
        Returns:
        the int value
        Throws:
        ArithmeticException - if the result overflows an int
      • floorDiv

        public static long floorDiv​(long a,
                                    long b)
        Returns the floor division.

        This returns 0 for floorDiv(0, 4).
        This returns -1 for floorDiv(-1, 4).
        This returns -1 for floorDiv(-2, 4).
        This returns -1 for floorDiv(-3, 4).
        This returns -1 for floorDiv(-4, 4).
        This returns -2 for floorDiv(-5, 4).

        Parameters:
        a - the dividend
        b - the divisor
        Returns:
        the floor division
      • floorMod

        public static long floorMod​(long a,
                                    long b)
        Returns the floor modulus.

        This returns 0 for floorMod(0, 4).
        This returns 1 for floorMod(-1, 4).
        This returns 2 for floorMod(-2, 4).
        This returns 3 for floorMod(-3, 4).
        This returns 0 for floorMod(-4, 4).

        Parameters:
        a - the dividend
        b - the divisor
        Returns:
        the floor modulus (positive)
      • floorMod

        public static int floorMod​(long a,
                                   int b)
        Returns the floor modulus.

        This returns 0 for floorMod(0, 4).
        This returns 3 for floorMod(-1, 4).
        This returns 2 for floorMod(-2, 4).
        This returns 1 for floorMod(-3, 4).
        This returns 0 for floorMod(-4, 4).
        This returns 3 for floorMod(-5, 4).

        Parameters:
        a - the dividend
        b - the divisor
        Returns:
        the floor modulus (positive)
      • floorDiv

        public static int floorDiv​(int a,
                                   int b)
        Returns the floor division.

        This returns 1 for floorDiv(3, 3).
        This returns 0 for floorDiv(2, 3).
        This returns 0 for floorDiv(1, 3).
        This returns 0 for floorDiv(0, 3).
        This returns -1 for floorDiv(-1, 3).
        This returns -1 for floorDiv(-2, 3).
        This returns -1 for floorDiv(-3, 3).
        This returns -2 for floorDiv(-4, 3).

        Parameters:
        a - the dividend
        b - the divisor
        Returns:
        the floor division
      • floorMod

        public static int floorMod​(int a,
                                   int b)
        Returns the floor modulus.

        This returns 0 for floorMod(3, 3).
        This returns 2 for floorMod(2, 3).
        This returns 1 for floorMod(1, 3).
        This returns 0 for floorMod(0, 3).
        This returns 2 for floorMod(-1, 3).
        This returns 1 for floorMod(-2, 3).
        This returns 0 for floorMod(-3, 3).
        This returns 2 for floorMod(-4, 3).

        Parameters:
        a - the dividend
        b - the divisor
        Returns:
        the floor modulus (positive)