Module org.easymock

Class ReflectionUtils

java.lang.Object
org.easymock.internal.ReflectionUtils

public final class ReflectionUtils extends Object
Helper class for reflection.
Author:
Henri Tremblay
  • Field Details

    • NOT_PRIVATE

      public static final Predicate<Method> NOT_PRIVATE
    • OBJECT_EQUALS

      public static final Method OBJECT_EQUALS
    • OBJECT_HASHCODE

      public static final Method OBJECT_HASHCODE
    • OBJECT_TOSTRING

      public static final Method OBJECT_TOSTRING
    • OBJECT_FINALIZE

      public static final Method OBJECT_FINALIZE
  • Method Details

    • findMethod

      public static Method findMethod(Class<?> clazz, String name, Predicate<Method> filter)
      Attempt to find a Method on the supplied class with the supplied name and no parameters. Searches all superclasses up to Object. The filter is used to ignore some kind of methods the caller doesn't want to see returned. In this case they are totally ignored and can't clash with a non-ignored one to cause ambiguity.

      Returns null if no Method can be found.

      Parameters:
      clazz - the class to introspect
      name - the name of the method
      filter - tells what methods to ignore in the research
      Returns:
      the Method object, or null if none found
    • findMethod

      public static Method findMethod(Class<?> clazz, String name, Predicate<Method> filter, Class<?>... paramTypes)
      Attempt to find a Method on the supplied class with the supplied name and parameter types. Searches all superclasses up to Object. The filter is used to ignore some kind of methods the caller doesn't want to see returned. In this case they are totally ignored and can't clash with a non-ignored one to cause ambiguity.

      Returns null if no Method can be found.

      Parameters:
      clazz - the class to introspect
      name - the name of the method
      filter - tells what methods to ignore in the research
      paramTypes - the parameter types of the method (may be null to indicate any signature)
      Returns:
      the Method object, or null if none found
    • getConstructor

      public static <T> Constructor<T> getConstructor(Class<T> clazz, Object... objs) throws NoSuchMethodException
      Returns a constructor that contains objs as arguments.

      We could not do something like clazz.getConstructor(objs.class()) because that would require casting all the passed arguments to the exact parameter types of the desired constructor.

      Type Parameters:
      T - type of the class searched
      Parameters:
      clazz - class on which we are searching the constructor
      objs - list of arguments of the constructor
      Returns:
      a constructor with the arguments in objs
      Throws:
      NoSuchMethodException - when the constructor with args does not exist or is ambiguous
    • getDeclaredMethod

      public static Method getDeclaredMethod(Class<?> clazz, String name, Class<?>... paramTypes)
      Basically calls getDeclaredMethod on a Class but wraps the NoSuchMethodException into a Runtime.
      Parameters:
      clazz - class on which the getDeclaredMethod is called
      name - method name
      paramTypes - method parameters
      Returns:
      the method searched
    • isClassAvailable

      public static boolean isClassAvailable(String className)
      Tells if a class is available in the classpath
      Parameters:
      className - full class name
      Returns:
      true if the class was found
    • getDefaultMethods

      public static Set<Method> getDefaultMethods(Class<?> clazz)
      Return all default methods of an interface and it's inherited interface.
      Parameters:
      clazz - class for which we want the default method
      Returns:
      all default methods