Sets a custom Equivalence strategy for comparing keys. By default, the map uses Equivalence#identity to determine key equality when #weakKeys is specified, and Equivalence#equals() otherwise. The only place this is used is in Interners.WeakInterner.
(Equivalence<Object> equivalence)
| 120 | * is used is in {@link Interners.WeakInterner}. |
| 121 | */ |
| 122 | @CanIgnoreReturnValue |
| 123 | @GwtIncompatible // To be supported |
| 124 | MapMaker keyEquivalence(Equivalence<Object> equivalence) { |
| 125 | checkState(keyEquivalence == null, "key equivalence was already set to %s", keyEquivalence); |
| 126 | keyEquivalence = checkNotNull(equivalence); |
| 127 | this.useCustomMap = true; |
| 128 | return this; |
| 129 | } |
| 130 | |
| 131 | Equivalence<Object> getKeyEquivalence() { |
| 132 | return MoreObjects.firstNonNull(keyEquivalence, getKeyStrength().defaultEquivalence()); |
no test coverage detected