Class Interners


  • @Beta
    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

        equals, 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(). Note that unlike String.intern(), using this interner does not consume memory in the permanent generation.
      • 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. Note that unlike String.intern(), using this interner does not consume memory in the permanent generation.
      • 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