Class ClassKey


  • public final class ClassKey
    extends java.lang.Object
    Key class, used as an efficient and accurate key for locating per-class values from Maps.

    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.

    • Constructor Summary

      Constructors 
      Constructor Description
      ClassKey()  
      ClassKey​(java.lang.Class<?> clz, int flags)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object o)  
      int hashCode()  
      java.lang.String toString()  
      ClassKey with​(java.lang.Class<?> clz, int flags)  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ClassKey

        public ClassKey()
      • ClassKey

        public ClassKey​(java.lang.Class<?> clz,
                        int flags)
    • Method Detail

      • with

        public ClassKey with​(java.lang.Class<?> clz,
                             int flags)
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object