Class TypeBindings
- java.lang.Object
-
- com.fasterxml.jackson.databind.type.TypeBindings
-
- All Implemented Interfaces:
java.io.Serializable
public class TypeBindings extends java.lang.Object implements java.io.SerializableHelper class used for resolving type parameters for given class- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classTypeBindings.AsKeyHelper type used to allow caching of generic types(package private) static classTypeBindings.TypeParamStashHelper class that contains simple logic for avoiding repeated lookups viaClass.getTypeParameters()as that can be a performance issue for some use cases (wasteful, usually one-off or not reusing mapper).
-
Field Summary
Fields Modifier and Type Field Description private int_hashCodeprivate java.lang.String[]_namesArray of type (type variable) names.private JavaType[]_typesTypes matching namesprivate java.lang.String[]_unboundVariablesNames of potentially unresolved type variables.private static TypeBindingsEMPTYprivate static java.lang.String[]NO_STRINGSprivate static JavaType[]NO_TYPESprivate static longserialVersionUID
-
Constructor Summary
Constructors Modifier Constructor Description privateTypeBindings(java.lang.String[] names, JavaType[] types, java.lang.String[] uvars)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.ObjectasKey(java.lang.Class<?> rawBase)Factory method that will create an object that can be used as a key for caching purposes byTypeFactorystatic TypeBindingscreate(java.lang.Class<?> erasedType, JavaType typeArg1)static TypeBindingscreate(java.lang.Class<?> erasedType, JavaType[] types)static TypeBindingscreate(java.lang.Class<?> erasedType, JavaType typeArg1, JavaType typeArg2)static TypeBindingscreate(java.lang.Class<?> erasedType, java.util.List<JavaType> typeList)Factory method for constructing bindings for given class using specified type parameters.static TypeBindingscreateIfNeeded(java.lang.Class<?> erasedType, JavaType typeArg1)Alternate factory method that may be called if it is possible that type does or does not require type parameters; this is mostly useful for collection- and map-like types.static TypeBindingscreateIfNeeded(java.lang.Class<?> erasedType, JavaType[] types)Alternate factory method that may be called if it is possible that type does or does not require type parameters; this is mostly useful for collection- and map-like types.static TypeBindingsemptyBindings()booleanequals(java.lang.Object o)JavaTypefindBoundType(java.lang.String name)Find type bound to specified name, if there is one; returns bound type if so, null if not.java.lang.StringgetBoundName(int index)JavaTypegetBoundType(int index)java.util.List<JavaType>getTypeParameters()Accessor for getting bound types in declaration orderinthashCode()booleanhasUnbound(java.lang.String name)booleanisEmpty()protected java.lang.ObjectreadResolve()intsize()Returns number of bindings containedjava.lang.StringtoString()protected JavaType[]typeParameterArray()TypeBindingswithUnboundVariable(java.lang.String name)Method for creating an instance that has same bindings as this object, plus an indicator for additional type variable that may be unbound within this context; this is needed to resolve recursive self-references.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
NO_STRINGS
private static final java.lang.String[] NO_STRINGS
-
NO_TYPES
private static final JavaType[] NO_TYPES
-
EMPTY
private static final TypeBindings EMPTY
-
_names
private final java.lang.String[] _names
Array of type (type variable) names.
-
_types
private final JavaType[] _types
Types matching names
-
_unboundVariables
private final java.lang.String[] _unboundVariables
Names of potentially unresolved type variables.- Since:
- 2.3
-
_hashCode
private final int _hashCode
-
-
Constructor Detail
-
TypeBindings
private TypeBindings(java.lang.String[] names, JavaType[] types, java.lang.String[] uvars)
-
-
Method Detail
-
emptyBindings
public static TypeBindings emptyBindings()
-
readResolve
protected java.lang.Object readResolve()
-
create
public static TypeBindings create(java.lang.Class<?> erasedType, java.util.List<JavaType> typeList)
Factory method for constructing bindings for given class using specified type parameters.
-
create
public static TypeBindings create(java.lang.Class<?> erasedType, JavaType[] types)
-
create
public static TypeBindings create(java.lang.Class<?> erasedType, JavaType typeArg1)
-
create
public static TypeBindings create(java.lang.Class<?> erasedType, JavaType typeArg1, JavaType typeArg2)
-
createIfNeeded
public static TypeBindings createIfNeeded(java.lang.Class<?> erasedType, JavaType typeArg1)
Alternate factory method that may be called if it is possible that type does or does not require type parameters; this is mostly useful for collection- and map-like types.
-
createIfNeeded
public static TypeBindings createIfNeeded(java.lang.Class<?> erasedType, JavaType[] types)
Alternate factory method that may be called if it is possible that type does or does not require type parameters; this is mostly useful for collection- and map-like types.
-
withUnboundVariable
public TypeBindings withUnboundVariable(java.lang.String name)
Method for creating an instance that has same bindings as this object, plus an indicator for additional type variable that may be unbound within this context; this is needed to resolve recursive self-references.
-
findBoundType
public JavaType findBoundType(java.lang.String name)
Find type bound to specified name, if there is one; returns bound type if so, null if not.
-
isEmpty
public boolean isEmpty()
-
size
public int size()
Returns number of bindings contained
-
getBoundName
public java.lang.String getBoundName(int index)
-
getBoundType
public JavaType getBoundType(int index)
-
getTypeParameters
public java.util.List<JavaType> getTypeParameters()
Accessor for getting bound types in declaration order
-
hasUnbound
public boolean hasUnbound(java.lang.String name)
- Since:
- 2.3
-
asKey
public java.lang.Object asKey(java.lang.Class<?> rawBase)
Factory method that will create an object that can be used as a key for caching purposes byTypeFactory- Since:
- 2.8
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
typeParameterArray
protected JavaType[] typeParameterArray()
-
-