Class ClassKey
- java.lang.Object
-
- com.fasterxml.jackson.databind.type.ClassKey
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Comparable<ClassKey>
public final class ClassKey extends java.lang.Object implements java.lang.Comparable<ClassKey>, java.io.Serializable
Key class, used as an efficient and accurate key for locating per-class values, such asJsonSerializers.The reason for having a separate key class instead of directly using
Classas key is mostly to allow for redefininghashCodemethod -- for some strange reason,Classdoes not redefineObject.hashCode()and thus uses identity hash, which is pretty slow. This makes key access usingClassunnecessarily slow.Note: since class is not strictly immutable, caller must know what it is doing, if changing field values.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Class<?>_classprivate java.lang.String_classNameprivate int_hashCodeLet's cache hash code straight away, since we are almost certain to need it.private static longserialVersionUID
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompareTo(ClassKey other)booleanequals(java.lang.Object o)inthashCode()voidreset(java.lang.Class<?> clz)java.lang.StringtoString()
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
_className
private java.lang.String _className
-
_class
private java.lang.Class<?> _class
-
_hashCode
private int _hashCode
Let's cache hash code straight away, since we are almost certain to need it.
-
-
Method Detail
-
reset
public void reset(java.lang.Class<?> clz)
-
compareTo
public int compareTo(ClassKey other)
- Specified by:
compareToin interfacejava.lang.Comparable<ClassKey>
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-