Class TypeLiteral<T>

java.lang.Object
org.graalvm.polyglot.TypeLiteral<T>

public abstract class TypeLiteral<T> extends Object
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 of 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>>() {};

Since:
19.0
See Also:
  • 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.

      Since:
      19.0
  • Method Details

    • getType

      public final Type getType()
      Returns the type literal including generic type information.
      Since:
      19.0
    • getRawType

      public final Class<T> getRawType()
      Returns the raw class type of the literal.
      Since:
      19.0
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
      Since:
      19.0
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
      Since:
      19.0
    • toString

      public final String toString()
      Overrides:
      toString in class Object
      Since:
      19.0