Class Interners


  • @Beta
    public final class Interners
    extends Object
    Contains static methods pertaining to instances of Interner.
    Since:
    3.0
    • 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