Class SetOnce<T>

  • All Implemented Interfaces:
    Cloneable

    public final class SetOnce<T>
    extends Object
    implements Cloneable
    A convenient class which offers a semi-immutable object wrapper implementation which allows one to set the value of an object exactly once, and retrieve it many times. If set(Object) is called more than once, SetOnce.AlreadySetException is thrown and the operation will fail.
    WARNING: This API is experimental and might change in incompatible ways in the next release.
    • Method Detail

      • set

        public final void set​(T obj)
        Sets the given object. If the object has already been set, an exception is thrown.
      • trySet

        public final boolean trySet​(T obj)
        Sets the given object if none was set before.
        Returns:
        true if object was set successfully, false otherwise
      • get

        public final T get()
        Returns the object set by set(Object).