Package com.google.inject.internal
Class MoreTypes
- java.lang.Object
-
- com.google.inject.internal.MoreTypes
-
public class MoreTypes extends java.lang.ObjectStatic methods for working with types that we aren't publishing in the publicTypesAPI.- Author:
- jessewilson@google.com (Jesse Wilson)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMoreTypes.GenericArrayTypeImplstatic classMoreTypes.ParameterizedTypeImplstatic classMoreTypes.WildcardTypeImplThe WildcardType interface supports multiple upper bounds and multiple lower bounds.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.reflect.Type[]EMPTY_TYPE_ARRAY
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.reflect.Typecanonicalize(java.lang.reflect.Type type)Returns a type that is functionally equal but not necessarily equal according toObject.equals().static <T> TypeLiteral<T>canonicalizeForKey(TypeLiteral<T> typeLiteral)Returns an type that's appropriate for use in a key.static <T> Key<T>canonicalizeKey(Key<T> key)Returns a key that doesn't hold any references to parent classes.static booleanequals(java.lang.reflect.Type a, java.lang.reflect.Type b)Returns true ifaandbare equal.static java.lang.reflect.TypegetGenericSupertype(java.lang.reflect.Type type, java.lang.Class<?> rawType, java.lang.Class<?> toResolve)Returns the generic supertype fortype.static java.lang.Class<?>getRawType(java.lang.reflect.Type type)static java.lang.reflect.TyperesolveTypeVariable(java.lang.reflect.Type type, java.lang.Class<?> rawType, java.lang.reflect.TypeVariable<?> unknown)static java.lang.StringtypeToString(java.lang.reflect.Type type)
-
-
-
Method Detail
-
canonicalizeKey
public static <T> Key<T> canonicalizeKey(Key<T> key)
Returns a key that doesn't hold any references to parent classes. This is necessary for anonymous keys, so ensure we don't hold a ref to the containing module (or class) forever.
-
canonicalizeForKey
public static <T> TypeLiteral<T> canonicalizeForKey(TypeLiteral<T> typeLiteral)
Returns an type that's appropriate for use in a key.If the raw type of
typeLiteralis ajavax.inject.Providerorjakarta.inject.Provider, this returns acom.google.inject.Providerwith the same type parameters.If the type is a primitive, the corresponding wrapper type will be returned.
- Throws:
ConfigurationException- iftypecontains a type variable
-
canonicalize
public static java.lang.reflect.Type canonicalize(java.lang.reflect.Type type)
Returns a type that is functionally equal but not necessarily equal according toObject.equals(). The returned type isSerializable.
-
getRawType
public static java.lang.Class<?> getRawType(java.lang.reflect.Type type)
-
equals
public static boolean equals(java.lang.reflect.Type a, java.lang.reflect.Type b)Returns true ifaandbare equal.
-
typeToString
public static java.lang.String typeToString(java.lang.reflect.Type type)
-
getGenericSupertype
public static java.lang.reflect.Type getGenericSupertype(java.lang.reflect.Type type, java.lang.Class<?> rawType, java.lang.Class<?> toResolve)Returns the generic supertype fortype. For example, given a classIntegerSet, the result for when supertype isSet.classisSet<Integer>and the result when the supertype isCollection.classisCollection<Integer>.
-
resolveTypeVariable
public static java.lang.reflect.Type resolveTypeVariable(java.lang.reflect.Type type, java.lang.Class<?> rawType, java.lang.reflect.TypeVariable<?> unknown)
-
-