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)
| 124 | */ |
| 125 | |
| 126 | @CanIgnoreReturnValue |
| 127 | @GwtIncompatible // To be supported |
| 128 | MapMaker keyEquivalence(Equivalence<Object> equivalence) { |
| 129 | checkState(keyEquivalence == null, "key equivalence was already set to %s", keyEquivalence); |
| 130 | keyEquivalence = checkNotNull(equivalence); |
| 131 | this.useCustomMap = true; |
| 132 | return this; |
| 133 | } |
| 134 | |
| 135 | Equivalence<Object> getKeyEquivalence() { |
| 136 | return MoreObjects.firstNonNull(keyEquivalence, getKeyStrength().defaultEquivalence()); |
no test coverage detected