Class GenericType<T>

  • Type Parameters:
    T - the generic type parameter.

    public class GenericType<T>
    extends Object
    Represents a generic message entity type T. Supports in-line instantiation of objects that represent generic types with actual type parameters. An object that represents any parameterized type may be obtained by sub-classing GenericType. Alternatively, an object representing a concrete parameterized type can be created using a GenericType(java.lang.reflect.Type) and manually specifying the actual (parameterized) type.

    For example:

      GenericType<List<String>> stringListType = new GenericType<List<String>>() {};
     

    Or:

      public class MyGenericType extends GenericType<List<String>> { ... }
    
      ...
    
      MyGenericType stringListType = new MyGenericType();
     

    Note that due to the Java type erasure limitations the parameterized type information must be specified on a subclass, not just during the instance creation. For example, the following case would throw an IllegalArgumentException:

      public class MyGenericType<T> extends GenericType<T> { ... }
    
      ...
    
      // The type is only specified on instance, not in a sub-class
      MyGenericType<List<String>> stringListType =
              new MyGenericType<List<String>>();
     
    Since:
    2.0
    Author:
    Marek Potociar, Paul Sandoz, Martin Matula
    • Constructor Detail

      • GenericType

        protected GenericType()
        Constructs a new generic type, deriving the generic type and class from type parameter. Note that this constructor is protected, users should create a (usually anonymous) subclass as shown above.
        Throws:
        IllegalArgumentException - in case the generic type parameter value is not provided by any of the subclasses.
      • GenericType

        public GenericType​(Type genericType)
        Constructs a new generic type, supplying the generic type information and deriving the class.
        Parameters:
        genericType - the generic type.
        Throws:
        IllegalArgumentException - if genericType is null or not an instance of Class or ParameterizedType whose raw type is an instance of Class.
    • Method Detail

      • getType

        public final Type getType()
        Retrieve the type represented by the generic type instance.
        Returns:
        the actual type represented by this generic type instance.
      • getRawType

        public final Class<?> getRawType()
        Returns the object representing the class or interface that declared the type represented by this generic type instance.
        Returns:
        the class or interface that declared the type represented by this generic type instance.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object