Class ReflectionUtils

java.lang.Object
com.restfb.util.ReflectionUtils

public final class ReflectionUtils
extends Object
A collection of reflection-related utility methods.
Since:
1.6
Author:
Mark Allen, Igor Kabiljo, Scott Hernandez
  • Method Details

    • isPrimitive

      public static boolean isPrimitive​(Object object)
      Is the given object a primitive type or wrapper for a primitive type?
      Parameters:
      object - The object to check for primitive-ness.
      Returns:
      true if object is a primitive type or wrapper for a primitive type, false otherwise.
    • findFieldsWithAnnotation

      public static <T extends Annotation> List<ReflectionUtils.FieldWithAnnotation<T>> findFieldsWithAnnotation​(Class<?> type, Class<T> annotationType)
      Finds fields on the given type and all of its superclasses annotated with annotations of type annotationType.
      Type Parameters:
      T - The annotation type.
      Parameters:
      type - The target type token.
      annotationType - The annotation type token.
      Returns:
      A list of field/annotation pairs.
    • findMethodsWithAnnotation

      public static <T extends Annotation> List<Method> findMethodsWithAnnotation​(Class<?> type, Class<T> annotationType)
      Finds methods on the given type and all of its superclasses annotated with annotations of type annotationType.

      These results are cached to mitigate performance overhead.

      Type Parameters:
      T - The annotation type.
      Parameters:
      type - The target type token.
      annotationType - The annotation type token.
      Returns:
      A list of methods with the given annotation.
      Since:
      1.6.11
    • getFirstParameterizedTypeArgument

      public static Class<?> getFirstParameterizedTypeArgument​(Field field)
      For a given field, get its first parameterized type argument.

      For example, a field of type List<Long> would have a first type argument of Long.class.

      If the field has no type arguments, null is returned.

      Parameters:
      field - The field to check.
      Returns:
      The field's first parameterized type argument, or null if none exists.
    • getSecondParameterizedTypeArgument

      public static Class<?> getSecondParameterizedTypeArgument​(Field field)
      For a given field, get its second parameterized type argument. If the field has no type arguments, null is returned.
      Parameters:
      field - The field to check.
      Returns:
      The field's second parameterized type argument, or null if none exists.
    • getAccessors

      public static List<Method> getAccessors​(Class<?> clazz)
      Gets all accessor methods for the given clazz.
      Parameters:
      clazz - The class for which accessors are extracted.
      Returns:
      All accessor methods for the given clazz.
    • toString

      public static String toString​(Object object)
      Reflection-based implementation of Object.toString().
      Parameters:
      object - The object to convert to a string representation.
      Returns:
      A string representation of object.
      Throws:
      IllegalStateException - If an error occurs while performing reflection operations.
    • hashCode

      public static int hashCode​(Object object)
      Reflection-based implementation of Object.hashCode().
      Parameters:
      object - The object to hash.
      Returns:
      A hashcode for object.
      Throws:
      IllegalStateException - If an error occurs while performing reflection operations.
    • equals

      public static boolean equals​(Object object1, Object object2)
      Reflection-based implementation of Object.equals(Object).
      Parameters:
      object1 - One object to compare.
      object2 - Another object to compare.
      Returns:
      true if the objects are equal, false otherwise.
      Throws:
      IllegalStateException - If an error occurs while performing reflection operations.
    • createInstance

      public static <T> T createInstance​(Class<T> type)
      Creates a new instance of the given type.

      Type Parameters:
      T - Java type to map to.
      Parameters:
      type - Type token.
      Returns:
      A new instance of type.
      Throws:
      FacebookJsonMappingException - If an error occurs when creating a new instance (type is inaccessible, doesn't have a no-arg constructor, etc.)