Class ClassLocal<E>


  • public class ClassLocal<E>
    extends Object
    This class is a similar to the JDK ThreadLocal class, but stores one object per class instead of one object per thread.

    The main usage for this class is to allow a superclass to hold one object for each subclass that is extending it.

    Version:
    2.0
    Author:
    Nicklas
    • Field Detail

      • objects

        private Map<Class<?>,​E> objects
    • Constructor Detail

      • ClassLocal

        public ClassLocal()
        Create a new ClassLocal object.
    • Method Detail

      • get

        public E get​(Object instance)
        Get the object associated with the class of the specified instance.
        Parameters:
        instance - An object instance of the class
        See Also:
        ThreadLocal.get()
      • set

        public void set​(Object instance,
                        E object)
        Store an object and associate it with the class of the specified instance.
        Parameters:
        instance - An object instance of the class
        object - The object to store
        See Also:
        ThreadLocal.set(Object)
      • initialValue

        protected E initialValue​(Object instance)
        Subclasses may override this to initialize the object stored for that class.
        Parameters:
        instance - An object instance of the class
        Returns:
        The object to associate with the class