Class JavaEightUtil

java.lang.Object
org.mockito.internal.util.JavaEightUtil

public final class JavaEightUtil extends Object
Helper class to work with features that were introduced in Java versions after 1.5. This class uses reflection in most places to avoid coupling with a newer JDK.
  • Field Details

    • emptyOptional

      private static Object emptyOptional
    • emptyOptionalDouble

      private static Object emptyOptionalDouble
    • emptyOptionalInt

      private static Object emptyOptionalInt
    • emptyOptionalLong

      private static Object emptyOptionalLong
    • emptyDuration

      private static Object emptyDuration
    • emptyPeriod

      private static Object emptyPeriod
  • Constructor Details

    • JavaEightUtil

      private JavaEightUtil()
  • Method Details

    • emptyOptional

      public static Object emptyOptional()
      Creates an empty Optional using reflection to stay backwards-compatible with older JDKs.
      Returns:
      an empty Optional.
    • emptyOptionalDouble

      public static Object emptyOptionalDouble()
      Creates an empty OptionalDouble using reflection to stay backwards-compatible with older JDKs.
      Returns:
      an empty OptionalDouble.
    • emptyOptionalInt

      public static Object emptyOptionalInt()
      Creates an empty OptionalInt using reflection to stay backwards-compatible with older JDKs.
      Returns:
      an empty OptionalInt.
    • emptyOptionalLong

      public static Object emptyOptionalLong()
      Creates an empty OptionalLong using reflection to stay backwards-compatible with older JDKs.
      Returns:
      an empty OptionalLong.
    • emptyStream

      public static Object emptyStream()
      Creates an empty Stream using reflection to stay backwards-compatible with older JDKs.
      Returns:
      an empty Stream.
    • emptyDoubleStream

      public static Object emptyDoubleStream()
      Creates an empty DoubleStream using reflection to stay backwards-compatible with older JDKs.
      Returns:
      an empty DoubleStream.
    • emptyIntStream

      public static Object emptyIntStream()
      Creates an empty IntStream using reflection to stay backwards-compatible with older JDKs.
      Returns:
      an empty IntStream.
    • emptyLongStream

      public static Object emptyLongStream()
      Creates an empty LongStream using reflection to stay backwards-compatible with older JDKs.
      Returns:
      an empty LongStream.
    • emptyDuration

      public static Object emptyDuration()
      Creates an empty Duration using reflection to stay backwards-compatible with older JDKs.
      Returns:
      an empty (ZERO) Duration.
    • emptyPeriod

      public static Object emptyPeriod()
      Creates an empty Period using reflection to stay backwards-compatible with older JDKs.
      Returns:
      an empty (ZERO) Period.
    • invokeNullaryFactoryMethod

      private static Object invokeNullaryFactoryMethod(String fqcn, String methodName)
      Invokes a nullary static factory method using reflection to stay backwards-compatible with older JDKs.
      Parameters:
      fqcn - The fully qualified class name of the type to be produced.
      methodName - The name of the factory method.
      Returns:
      the object produced.
    • getStaticFieldValue

      private static Object getStaticFieldValue(String fqcn, String fieldName)
      Gets a value of the classes' field using reflection to stay backwards-compatible with older JDKs.
      Parameters:
      fqcn - The fully qualified class name of the type to be produced.
      fieldName - The name of th classes' field which value is going to be returned.
      Returns:
      the restored value.
    • getClass

      private static Class<?> getClass(String fqcn)
      Returns the Class object associated with the class or interface with the given string name.
      Parameters:
      fqcn - The fully qualified class name of the type to be produced.
      Returns:
      the Class object for the class with the specified name.
    • getMethod

      private static Method getMethod(String fqcn, String methodName, Class<?>... parameterClasses)
      Returns a Method object that reflects the specified public member method of the class or interface represented by the fully qualified class name.
      Parameters:
      fqcn - The fully qualified class name of the type to be produced.
      methodName - The name of the method.
      parameterClasses - The list of parameters.
      Returns:
      The Method object that matches the specified name and parameterTypes.