public final class MoreTypes
extends java.lang.Object
TypeMirror instances.| Modifier and Type | Method and Description |
|---|---|
static javax.lang.model.type.ArrayType |
asArray(javax.lang.model.type.TypeMirror maybeArrayType)
Returns a
ArrayType if the TypeMirror represents an array or throws an IllegalArgumentException. |
static javax.lang.model.type.DeclaredType |
asDeclared(javax.lang.model.type.TypeMirror maybeDeclaredType)
Returns a
DeclaredType if the TypeMirror represents a declared type such as a
class, interface, union/compound, or enum or throws an IllegalArgumentException. |
static javax.lang.model.element.Element |
asElement(javax.lang.model.type.TypeMirror typeMirror)
An alternate implementation of
Types.asElement(javax.lang.model.type.TypeMirror) that does not require a Types
instance with the notable difference that it will throw IllegalArgumentException
instead of returning null if the TypeMirror can not be converted to an Element. |
static javax.lang.model.type.ErrorType |
asError(javax.lang.model.type.TypeMirror maybeErrorType)
Returns a
ExecutableType if the TypeMirror represents an executable type such
as may result from missing code, or bad compiles or throws an IllegalArgumentException. |
static javax.lang.model.type.ExecutableType |
asExecutable(javax.lang.model.type.TypeMirror maybeExecutableType)
Returns a
ExecutableType if the TypeMirror represents an executable type such
as a method, constructor, or initializer or throws an IllegalArgumentException. |
static javax.lang.model.type.IntersectionType |
asIntersection(javax.lang.model.type.TypeMirror maybeIntersectionType)
Returns an
IntersectionType if the TypeMirror represents an intersection-type
or throws an IllegalArgumentException. |
static javax.lang.model.type.TypeMirror |
asMemberOf(javax.lang.model.util.Types types,
javax.lang.model.type.DeclaredType container,
javax.lang.model.element.VariableElement variable)
Resolves a
VariableElement parameter to a method or constructor based on the given
container, or a member of a class. |
static javax.lang.model.type.NoType |
asNoType(javax.lang.model.type.TypeMirror maybeNoType)
Returns a
NoType if the TypeMirror represents an non-type such as void, or
package, etc. |
static javax.lang.model.type.NullType |
asNullType(javax.lang.model.type.TypeMirror maybeNullType)
Returns a
NullType if the TypeMirror represents the null type or throws an
IllegalArgumentException. |
static javax.lang.model.type.PrimitiveType |
asPrimitiveType(javax.lang.model.type.TypeMirror maybePrimitiveType)
Returns a
PrimitiveType if the TypeMirror represents a primitive type or throws
an IllegalArgumentException. |
static javax.lang.model.element.TypeElement |
asTypeElement(javax.lang.model.type.TypeMirror mirror) |
static com.google.common.collect.ImmutableSet<javax.lang.model.element.TypeElement> |
asTypeElements(java.lang.Iterable<? extends javax.lang.model.type.TypeMirror> mirrors) |
static javax.lang.model.type.TypeVariable |
asTypeVariable(javax.lang.model.type.TypeMirror maybeTypeVariable)
Returns a
TypeVariable if the TypeMirror represents a type variable or throws
an IllegalArgumentException. |
static javax.lang.model.type.WildcardType |
asWildcard(javax.lang.model.type.TypeMirror maybeWildcardType)
Returns a
WildcardType if the TypeMirror represents a wildcard type or throws
an IllegalArgumentException. |
static com.google.common.base.Equivalence<javax.lang.model.type.TypeMirror> |
equivalence()
Returns an
Equivalence that can be used to compare types. |
static boolean |
isConversionFromObjectUnchecked(javax.lang.model.type.TypeMirror type)
Returns true if casting
Object to the given type will elicit an unchecked warning from
the compiler. |
static boolean |
isType(javax.lang.model.type.TypeMirror type)
Returns true if the raw type underlying the given
TypeMirror represents a type that can
be referenced by a Class. |
static boolean |
isTypeOf(java.lang.Class<?> clazz,
javax.lang.model.type.TypeMirror type)
Returns true if the raw type underlying the given
TypeMirror represents the same raw
type as the given Class and throws an IllegalArgumentException if the TypeMirror does not represent a type that can be referenced by a Class |
static com.google.common.base.Optional<javax.lang.model.type.DeclaredType> |
nonObjectSuperclass(javax.lang.model.util.Types types,
javax.lang.model.util.Elements elements,
javax.lang.model.type.DeclaredType type)
Returns the superclass of
type, with any type parameters bound by type, or
Optional.absent() if type is an interface or Object or its superclass
is Object. |
static com.google.common.collect.ImmutableSet<javax.lang.model.element.TypeElement> |
referencedTypes(javax.lang.model.type.TypeMirror type)
Returns the set of types that are referenced by the given
TypeMirror. |
public static com.google.common.base.Equivalence<javax.lang.model.type.TypeMirror> equivalence()
Equivalence that can be used to compare types. The standard way to compare
types is Types.isSameType, but this alternative
may be preferred in a number of cases:
Types.
hashCode() for the types, for example to construct a set
of types using HashSet with Equivalence.wrap(Object).
Types.isSameType never considers wildcards equal, even when comparing a type to itself.
public static com.google.common.collect.ImmutableSet<javax.lang.model.element.TypeElement> referencedTypes(javax.lang.model.type.TypeMirror type)
TypeMirror.public static javax.lang.model.element.Element asElement(javax.lang.model.type.TypeMirror typeMirror)
Types.asElement(javax.lang.model.type.TypeMirror) that does not require a Types
instance with the notable difference that it will throw IllegalArgumentException
instead of returning null if the TypeMirror can not be converted to an Element.java.lang.NullPointerException - if typeMirror is nulljava.lang.IllegalArgumentException - if typeMirror cannot be converted to an Elementpublic static javax.lang.model.element.TypeElement asTypeElement(javax.lang.model.type.TypeMirror mirror)
public static com.google.common.collect.ImmutableSet<javax.lang.model.element.TypeElement> asTypeElements(java.lang.Iterable<? extends javax.lang.model.type.TypeMirror> mirrors)
public static javax.lang.model.type.ArrayType asArray(javax.lang.model.type.TypeMirror maybeArrayType)
ArrayType if the TypeMirror represents an array or throws an IllegalArgumentException.public static javax.lang.model.type.DeclaredType asDeclared(javax.lang.model.type.TypeMirror maybeDeclaredType)
DeclaredType if the TypeMirror represents a declared type such as a
class, interface, union/compound, or enum or throws an IllegalArgumentException.public static javax.lang.model.type.ErrorType asError(javax.lang.model.type.TypeMirror maybeErrorType)
ExecutableType if the TypeMirror represents an executable type such
as may result from missing code, or bad compiles or throws an IllegalArgumentException.public static javax.lang.model.type.ExecutableType asExecutable(javax.lang.model.type.TypeMirror maybeExecutableType)
ExecutableType if the TypeMirror represents an executable type such
as a method, constructor, or initializer or throws an IllegalArgumentException.public static javax.lang.model.type.IntersectionType asIntersection(javax.lang.model.type.TypeMirror maybeIntersectionType)
IntersectionType if the TypeMirror represents an intersection-type
or throws an IllegalArgumentException.public static javax.lang.model.type.NoType asNoType(javax.lang.model.type.TypeMirror maybeNoType)
NoType if the TypeMirror represents an non-type such as void, or
package, etc. or throws an IllegalArgumentException.public static javax.lang.model.type.NullType asNullType(javax.lang.model.type.TypeMirror maybeNullType)
NullType if the TypeMirror represents the null type or throws an
IllegalArgumentException.public static javax.lang.model.type.PrimitiveType asPrimitiveType(javax.lang.model.type.TypeMirror maybePrimitiveType)
PrimitiveType if the TypeMirror represents a primitive type or throws
an IllegalArgumentException.public static javax.lang.model.type.TypeVariable asTypeVariable(javax.lang.model.type.TypeMirror maybeTypeVariable)
TypeVariable if the TypeMirror represents a type variable or throws
an IllegalArgumentException.public static javax.lang.model.type.WildcardType asWildcard(javax.lang.model.type.TypeMirror maybeWildcardType)
WildcardType if the TypeMirror represents a wildcard type or throws
an IllegalArgumentException.public static boolean isType(javax.lang.model.type.TypeMirror type)
TypeMirror represents a type that can
be referenced by a Class. If this returns true, then isTypeOf(java.lang.Class<?>, javax.lang.model.type.TypeMirror) is guaranteed to
not throw.public static boolean isTypeOf(java.lang.Class<?> clazz,
javax.lang.model.type.TypeMirror type)
TypeMirror represents the same raw
type as the given Class and throws an IllegalArgumentException if the TypeMirror does not represent a type that can be referenced by a Classpublic static com.google.common.base.Optional<javax.lang.model.type.DeclaredType> nonObjectSuperclass(javax.lang.model.util.Types types,
javax.lang.model.util.Elements elements,
javax.lang.model.type.DeclaredType type)
type, with any type parameters bound by type, or
Optional.absent() if type is an interface or Object or its superclass
is Object.public static javax.lang.model.type.TypeMirror asMemberOf(javax.lang.model.util.Types types,
javax.lang.model.type.DeclaredType container,
javax.lang.model.element.VariableElement variable)
VariableElement parameter to a method or constructor based on the given
container, or a member of a class. For parameters to a method or constructor, the variable's
enclosing element must be a supertype of the container type. For example, given a
container of type Set<String>, and a variable corresponding to the E e
parameter in the Set.add(E e) method, this will return a TypeMirror for String.public static boolean isConversionFromObjectUnchecked(javax.lang.model.type.TypeMirror type)
Object to the given type will elicit an unchecked warning from
the compiler. Only type variables and parameterized types such as List<String> produce
such warnings. There will be no warning if the type's only type parameters are simple
wildcards, as in Map<?, ?>.Copyright © 2021 Google LLC. All Rights Reserved.