Class TypeLiteral<T>

org.elasticsearch.common.inject.TypeLiteral<T>

public class TypeLiteral<T> extends
Represents a generic type T. Java doesn't yet provide a way to represent generic types, so this class does. Forces clients to create a subclass of this class which enables retrieval the type information even at runtime.

For example, to create a type literal for List<String>, you can create an empty anonymous inner class:

TypeLiteral<List<String>> list = new TypeLiteral<List<String>>() {};

This syntax cannot be used to create type literals that have wildcard parameters, such as Class<?> or List<? extends CharSequence>. Such type literals must be constructed programmatically, either by or by using the Types factory class.

Along with modeling generic types, this class can resolve type parameters. For example, to figure out what type keySet() returns on a Map<Integer, String>, use this code: <p> TypeLiteral<Map<Integer, String>> mapType = new TypeLiteral<Map<Integer, String>>() {}; TypeLiteral<?> keySetType = mapType.getReturnType(Map.class.getMethod("keySet")); System.out.println(keySetType); // prints "Set<Integer>"

  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Constructs a new type literal.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     o)
     
    static <T> TypeLiteral<T>
    <T> type)
    Gets type literal for the given Class instance.
    static TypeLiteral<?>
     type)
    Gets type literal for the given Type instance.
     methodOrConstructor)
    Returns the resolved generic exception types thrown by constructor.
     field)
    Returns the resolved generic type of field.
     methodOrConstructor)
    Returns the resolved generic parameter types of methodOrConstructor.
    <? super T>
    Returns the raw (non-generic) type for this type.
     method)
    Returns the resolved generic return type of method.
    <?> supertype)
    Returns the generic form of supertype.
    Gets underlying Type instance.
    int
     
     

    Methods inherited from class java.lang.

    , , , , , , ,
  • Constructor Details

    • TypeLiteral

      protected TypeLiteral()
      Constructs a new type literal. Derives represented class from type parameter.

      Clients create an empty anonymous subclass. Doing so embeds the type parameter in the anonymous class's type hierarchy so we can reconstitute it at runtime despite erasure.

  • Method Details

    • getRawType

      public final <? super T> getRawType()
      Returns the raw (non-generic) type for this type.
      Since:
      2.0
    • getType

      public final  getType()
      Gets underlying Type instance.
    • hashCode

      public final int hashCode()
      Overrides:
       in class 
    • equals

      public final boolean equals( o)
      Overrides:
       in class 
    • toString

      public final  toString()
      Overrides:
       in class 
    • get

      public static  type)
      Gets type literal for the given Type instance.
    • get

      public static <T> <T> type)
      Gets type literal for the given Class instance.
    • getSupertype

      public <?> supertype)
      Returns the generic form of supertype. For example, if this is ArrayList<String>, this returns Iterable<String> given the input Iterable.class.
      Parameters:
      supertype - a superclass of, or interface implemented by, this.
      Since:
      2.0
    • getFieldType

      public  field)
      Returns the resolved generic type of field.
      Parameters:
      field - a field defined by this or any superclass.
      Since:
      2.0
    • getParameterTypes

      public < methodOrConstructor)
      Returns the resolved generic parameter types of methodOrConstructor.
      Parameters:
      methodOrConstructor - a method or constructor defined by this or any supertype.
      Since:
      2.0
    • getExceptionTypes

      public < methodOrConstructor)
      Returns the resolved generic exception types thrown by constructor.
      Parameters:
      methodOrConstructor - a method or constructor defined by this or any supertype.
      Since:
      2.0
    • getReturnType

      public  method)
      Returns the resolved generic return type of method.
      Parameters:
      method - a method defined by this or any supertype.
      Since:
      2.0