@NonNull @SuppressWarnings({"unchecked", "rawtypes"}) <K1 extends K, V1 extends V> Weigher<K1, V1> getWeigher(boolean isAsync) { Weigher<K1, V1> delegate = (weigher == null) || (weigher == Weigher.singletonWeigher()) ? Weigher.singletonWeigher() : Weigher.boundedWeigher((Weigher<K1, V1>) weigher); return isAsync ? (Weigher<K1, V1>) new AsyncWeigher(delegate) : delegate; }
@Nonnull @SuppressWarnings({"unchecked", "rawtypes"}) <K1 extends K, V1 extends V> Weigher<K1, V1> getWeigher(boolean isAsync) { Weigher<K1, V1> delegate = (weigher == null) || (weigher == Weigher.singletonWeigher()) ? Weigher.singletonWeigher() : Weigher.boundedWeigher((Weigher<K1, V1>) weigher); return isAsync ? (Weigher<K1, V1>) new AsyncWeigher(delegate) : delegate; }