Class TypeArguments

java.lang.Object
org.eclipse.sisu.plexus.TypeArguments

public final class TypeArguments extends Object
Utility methods for dealing with generic type arguments.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final Type[]
     
    private static final Type
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
     
  • Method Summary

    Modifier and Type
    Method
    Description
    private static Type
    expand(Type type)
    Expands wild-card types where possible, for example Bar from ? extends Bar.
    static Type[]
    get(Type type)
    Get all type arguments from a generic type, for example [Foo,Bar] from Map<Foo,Bar>.
    static Type
    get(Type type, int index)
    Get an indexed type argument from a generic type, for example Bar from Map<Foo,Bar>.
    static Class<?>
    Get the erased raw Class for a generic type, for example Map from Map<Foo,Bar>.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • OBJECT_TYPE

      private static final Type OBJECT_TYPE
    • NO_TYPES

      private static final Type[] NO_TYPES
  • Constructor Details

    • TypeArguments

      private TypeArguments()
  • Method Details

    • get

      public static Type[] get(Type type)
      Get all type arguments from a generic type, for example [Foo,Bar] from Map<Foo,Bar>.
      Parameters:
      type - The generic type
      Returns:
      Array of type arguments
    • get

      public static Type get(Type type, int index)
      Get an indexed type argument from a generic type, for example Bar from Map<Foo,Bar>.
      Parameters:
      type - The generic type
      index - The argument index
      Returns:
      Indexed type argument; Object.class if the given type is a raw class
    • getRawType

      public static Class<?> getRawType(Type type)
      Get the erased raw Class for a generic type, for example Map from Map<Foo,Bar>.
      Parameters:
      type - The generic type
      Returns:
      Erased raw type
    • expand

      private static Type expand(Type type)
      Expands wild-card types where possible, for example Bar from ? extends Bar.
      Parameters:
      type - The generic type
      Returns:
      Widened type that is still assignment-compatible with the original.