ReflectionUtils (EasyMock 5.5.0 API)
Date: 2024-11-17

org.easymock.internal

## Class ReflectionUtils

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

-     public final class ReflectionUtils
      extends Object

  Helper class for reflection.
  Author:
    Henri Tremblay

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static Predicate<Method>` | `NOT_PRIVATE`
    `static Method` | `OBJECT_EQUALS`
    `static Method` | `OBJECT_FINALIZE`
    `static Method` | `OBJECT_HASHCODE`
    `static Method` | `OBJECT_TOSTRING`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `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.
    `static <T> Constructor<T>` | `getConstructor(Class<T> clazz, Object... objs)` Returns a constructor that contains `objs` as arguments.
    `static Method` | `getDeclaredMethod(Class<?> clazz, String name, Class<?>... paramTypes)` Basically calls getDeclaredMethod on a Class but wraps the NoSuchMethodException into a Runtime.
    `static Set<Method>` | `getDefaultMethods(Class<?> clazz)` Return all default methods of an interface and it's inherited interface.
    `static boolean` | `isClassAvailable(String className)` Tells if a class is available in the classpath

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### 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 Detail

    - #### 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

Copyright © 2001–2024 EasyMock contributors. All rights reserved.