|
@@ -24,7 +24,6 @@ import com.baomidou.mybatisplus.core.toolkit.support.SerializedLambda;
|
|
|
import java.lang.ref.WeakReference;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
-import java.util.Optional;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
|
|
import static java.util.Locale.ENGLISH;
|
|
@@ -59,13 +58,10 @@ public final class LambdaUtils {
|
|
|
public static <T> SerializedLambda resolve(SFunction<T, ?> func) {
|
|
|
Class<?> clazz = func.getClass();
|
|
|
String canonicalName = clazz.getCanonicalName();
|
|
|
- return Optional.ofNullable(FUNC_CACHE.get(canonicalName))
|
|
|
- .map(WeakReference::get)
|
|
|
- .orElseGet(() -> {
|
|
|
- SerializedLambda lambda = SerializedLambda.resolve(func);
|
|
|
- FUNC_CACHE.put(canonicalName, new WeakReference<>(lambda));
|
|
|
- return lambda;
|
|
|
- });
|
|
|
+ return FUNC_CACHE.computeIfAbsent(canonicalName, (k) -> {
|
|
|
+ SerializedLambda lambda = SerializedLambda.resolve(func);
|
|
|
+ return new WeakReference<>(lambda);
|
|
|
+ }).get();
|
|
|
}
|
|
|
|
|
|
/**
|