Class TypeLiteral<T>

  • Type Parameters:
    T -

    public abstract class TypeLiteral<T>
    extends Object
    Supports inline instantiation of objects that represent parameterized types with actual type parameters. An object that represents any parameterized type may be obtained by subclassing TypeLiteral.
      TypeLiteral<List<String>> stringListType = new TypeLiteral<List<String>>() {};
     
    • Constructor Detail

      • TypeLiteral

        protected TypeLiteral()
    • Method Detail

      • getType

        public final Type getType()
        Returns:
        the actual type represented by this object
      • getParameterTypes

        public final Type[] getParameterTypes()
        Gets the types associated with this literal
        Returns:
        A non-null (but possibly empty) array of types associated with this literal
      • getRawType

        public final Class<T> getRawType()
        Returns:
        the raw type represented by this object
      • getRawType

        public static Class<?> getRawType​(Type type)
        Gets the base associated class from this type
        Parameters:
        type - The non-null type to analyze
        Returns:
        The base class for the type, or null if there is none (e.g., Wildcard)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object