From 6e53f9c05515970b8e9307fe41b89b9feffd3be7 Mon Sep 17 00:00:00 2001 From: Shawn Date: Sun, 6 Aug 2023 16:21:08 +0800 Subject: [PATCH] [Java] use java.lang.ClassValue to cache Lookup (#844) * use java.lang.ClassValue to cache lookup * lint code * lint code --- .../src/main/java/io/fury/util/unsafe/_JDKAccess.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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(