Class TypeName

java.lang.Object
com.squareup.javapoet.TypeName
Direct Known Subclasses:
ArrayTypeName, ClassName, ParameterizedTypeName, TypeVariableName, WildcardTypeName

public class TypeName extends Object
Any type in Java's type system, plus void. This class is an identifier for primitive types like int and raw reference types like String and List. It also identifies composite types like char[] and Set<Long>.

Type names are dumb identifiers only and do not model the values they name. For example, the type name for java.lang.List doesn't know about the size() method, the fact that lists are collections, or even that it accepts a single type parameter.

Instances of this class are immutable value objects that implement equals() and hashCode() properly.

Referencing existing types

Primitives and void are constants that you can reference directly: see INT, DOUBLE, and VOID.

In an annotation processor you can get a type name instance for a type mirror by calling get(TypeMirror). In reflection code, you can use get(Type).

Defining new types

Create new reference types like com.example.HelloWorld with ClassName.get(String, String, String...). To build composite types like char[] and Set<Long>, use the factory methods on ArrayTypeName, ParameterizedTypeName, TypeVariableName, and WildcardTypeName.

  • Field Details

    • VOID

      public static final TypeName VOID
    • BOOLEAN

      public static final TypeName BOOLEAN
    • BYTE

      public static final TypeName BYTE
    • SHORT

      public static final TypeName SHORT
    • INT

      public static final TypeName INT
    • LONG

      public static final TypeName LONG
    • CHAR

      public static final TypeName CHAR
    • FLOAT

      public static final TypeName FLOAT
    • DOUBLE

      public static final TypeName DOUBLE
    • OBJECT

      public static final ClassName OBJECT
    • BOXED_VOID

      private static final ClassName BOXED_VOID
    • BOXED_BOOLEAN

      private static final ClassName BOXED_BOOLEAN
    • BOXED_BYTE

      private static final ClassName BOXED_BYTE
    • BOXED_SHORT

      private static final ClassName BOXED_SHORT
    • BOXED_INT

      private static final ClassName BOXED_INT
    • BOXED_LONG

      private static final ClassName BOXED_LONG
    • BOXED_CHAR

      private static final ClassName BOXED_CHAR
    • BOXED_FLOAT

      private static final ClassName BOXED_FLOAT
    • BOXED_DOUBLE

      private static final ClassName BOXED_DOUBLE
    • keyword

      private final String keyword
      The name of this type if it is a keyword, or null.
    • annotations

      public final List<AnnotationSpec> annotations
    • cachedString

      private String cachedString
      Lazily-initialized toString of this type name.
  • Constructor Details

  • Method Details