Class Equivalence.Wrapper<T>

java.lang.Object
com.google.common.base.Equivalence.Wrapper<T>
All Implemented Interfaces:
Serializable
Enclosing class:
Equivalence<T>

public static final class Equivalence.Wrapper<T> extends Object implements Serializable
Wraps an object so that equals(Object) and hashCode() delegate to an Equivalence.

For example, given an Equivalence for strings named equiv that tests equivalence using their lengths:


 equiv.wrap("a").equals(equiv.wrap("b")) // true
 equiv.wrap("a").equals(equiv.wrap("hello")) // false
 

Note in particular that an equivalence wrapper is never equal to the object it wraps.


 equiv.wrap(obj).equals(obj) // always false
 
Since:
10.0
See Also:
  • Field Details

    • equivalence

      private final Equivalence<? super T> equivalence
    • reference

      private final T reference
    • serialVersionUID

      private static final long serialVersionUID
      See Also:
  • Constructor Details

    • Wrapper

      private Wrapper(Equivalence<? super T> equivalence, T reference)
  • Method Details

    • get

      public T get()
      Returns the (possibly null) reference wrapped by this instance.
    • equals

      public boolean equals(@CheckForNull Object obj)
      Returns true if Equivalence.equivalent(Object, Object) applied to the wrapped references is true and both wrappers use the same equivalence.
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Returns the result of Equivalence.hash(Object) applied to the wrapped reference.
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Returns a string representation for this equivalence wrapper. The form of this string representation is not specified.
      Overrides:
      toString in class Object