com.fasterxml.jackson.databind.JsonSerializer
s.
The reason for having a separate key class instead of
directly using Class
as key is mostly
to allow for redefining hashCode
method --
for some strange reason, Class
does not
redefine Object#hashCode
and thus uses identity
hash, which is pretty slow. This makes key access using
Class
unnecessarily slow.
Note
since class is not strictly immutable, caller must know what it is doing, if changing field values.
Modifier and Type | Field and Description |
---|---|
private Class | |
private String | |
private int | _hashCode
Let's cache hash code straight away, since we are almost certain to need it. |
private static final long |
Modifier and Type | Method and Description |
---|---|
public int | compareTo(ClassKey
the object to be compared. other)Implements java. Compares this object with the specified object for order. |
public boolean | equals(Object
the reference object with which to compare. o)Overrides java. Indicates whether some other object is "equal to" this one. |
public int | |
public void | |
public String |
_class | back to summary |
---|---|
private Class<?> _class |
_className | back to summary |
---|---|
private String _className |
_hashCode | back to summary |
---|---|
private int _hashCode Let's cache hash code straight away, since we are almost certain to need it. |
serialVersionUID | back to summary |
---|---|
private static final long serialVersionUID |
ClassKey | back to summary |
---|---|
public ClassKey() |
ClassKey | back to summary |
---|---|
public ClassKey(Class<?> clz) |
compareTo | back to summary |
---|---|
public int compareTo(ClassKey other) Implements java. Doc from java. Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object. The implementor must ensure The implementor must also ensure that the relation is transitive:
Finally, the implementor must ensure that |
equals | back to summary |
---|---|
public boolean equals(Object o) Overrides java. Doc from java. Indicates whether some other object is "equal to" this one.
The
An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes. |
hashCode | back to summary |
---|---|
public int hashCode() Overrides java. Doc from java. Returns a hash code value for this object. This method is
supported for the benefit of hash tables such as those provided by
The general contract of
|
reset | back to summary |
---|---|
public void reset(Class<?> clz) |
toString | back to summary |
---|---|
public String toString() Overrides java. Doc from java. Returns a string representation of the object.
Satisfying this method's contract implies a non- |