diff --git a/java/fury-core/src/main/java/io/fury/util/unsafe/_JDKAccess.java b/java/fury-core/src/main/java/io/fury/util/unsafe/_JDKAccess.java index 6919c60a86..775247c460 100644 --- a/java/fury-core/src/main/java/io/fury/util/unsafe/_JDKAccess.java +++ b/java/fury-core/src/main/java/io/fury/util/unsafe/_JDKAccess.java @@ -73,11 +73,19 @@ public class _JDKAccess { } } + private static final ClassValue lookupCache = + new ClassValue() { + @Override + protected Lookup computeValue(Class type) { + return _Lookup._trustedLookup(type); + } + }; + // CHECKSTYLE.OFF:MethodName public static Lookup _trustedLookup(Class objectClass) { // CHECKSTYLE.ON:MethodName - return _Lookup._trustedLookup(objectClass); + return lookupCache.get(objectClass); } public static T tryMakeFunction(