Class ClassKey
- java.lang.Object
-
- org.glassfish.jersey.jackson.internal.jackson.jaxrs.util.ClassKey
-
- All Implemented Interfaces:
java.lang.Comparable<ClassKey>
public final class ClassKey extends java.lang.Object implements java.lang.Comparable<ClassKey>
Efficient key class, used instead of usingClass
. The reason for having a separate key class instead of directly usingClass
as key is mostly to allow for redefininghashCode
method -- for some strange reason,Class
does not redefineObject.hashCode()
and thus uses identity hash, which is pretty slow. This makes key access usingClass
unnecessarily slow.Note: since class is not strictly immutable, caller must know what it is doing, if changing field values.
- Since:
- 2.2
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Class<?>
_class
private java.lang.String
_className
private int
_hashCode
Let's cache hash code straight away, since we are almost certain to need it.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(ClassKey other)
boolean
equals(java.lang.Object o)
int
hashCode()
void
reset(java.lang.Class<?> clz)
java.lang.String
toString()
-
-
-
Method Detail
-
reset
public void reset(java.lang.Class<?> clz)
-
compareTo
public int compareTo(ClassKey other)
- Specified by:
compareTo
in interfacejava.lang.Comparable<ClassKey>
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-