Class Interners


  • @Beta
    @GwtIncompatible
    public final class Interners
    extends java.lang.Object
    Contains static methods pertaining to instances of Interner.
    Since:
    3.0
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static <E> Function<E,​E> asFunction​(Interner<E> interner)
      Returns a function that delegates to the Interner.intern(E) method of the given interner.
      static <E> Interner<E> newStrongInterner()
      Returns a new thread-safe interner which retains a strong reference to each instance it has interned, thus preventing these instances from being garbage-collected.
      static <E> Interner<E> newWeakInterner()
      Returns a new thread-safe interner which retains a weak reference to each instance it has interned, and so does not prevent these instances from being garbage-collected.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • newStrongInterner

        public static <E> Interner<E> newStrongInterner()
        Returns a new thread-safe interner which retains a strong reference to each instance it has interned, thus preventing these instances from being garbage-collected. If this retention is acceptable, this implementation may perform better than newWeakInterner().
      • newWeakInterner

        @GwtIncompatible("java.lang.ref.WeakReference")
        public static <E> Interner<E> newWeakInterner()
        Returns a new thread-safe interner which retains a weak reference to each instance it has interned, and so does not prevent these instances from being garbage-collected. This most likely does not perform as well as newStrongInterner(), but is the best alternative when the memory usage of that implementation is unacceptable.
      • asFunction

        public static <E> Function<E,​E> asFunction​(Interner<E> interner)
        Returns a function that delegates to the Interner.intern(E) method of the given interner.
        Since:
        8.0