Class ReflectionUtils

    • Constructor Detail

      • ReflectionUtils

        public ReflectionUtils()
    • Method Detail

      • isDefault

        public static boolean isDefault​(Method method)
        Check if the supplied method object represents a default method.

        This is the reflective equivalent of method.isDefault().

        Parameters:
        method -
        Returns:
        true if JVM supports default methods and method is a default method
      • getMethodHandle

        public static Object getMethodHandle​(Method method)
                                      throws Exception
        Retrieve the method handle, that can be used to invoke the provided method. It is only intended to be used to call default methods on interfaces.
        Parameters:
        method -
        Returns:
        method handle that can be used to invoke the supplied method
        Throws:
        Exception
      • invokeDefaultMethod

        public static Object invokeDefaultMethod​(Object target,
                                                 Object methodHandle,
                                                 Object... args)
                                          throws Throwable
        Invokes a default method reflectively. The method must be called with the method handle for a default method on an interfaces.
        Parameters:
        target - object to invoke the supplied method handle on
        methodHandle - retrieved via getMethodHandle(java.lang.reflect.Method)
        args -
        Returns:
        result of the invokation
        Throws:
        Throwable