From 848d709140ff480c372f1dbef161f84da7eb8329 Mon Sep 17 00:00:00 2001 From: Michael Yang Date: Thu, 3 Apr 2025 09:15:33 +0800 Subject: [PATCH] test: add lambada test --- .../com/mybatisflex/core/util/LambdaUtil.java | 4 ++++ .../mybatisflex/core/util/LambdaUtilTest.java | 18 +++++++++++++++ .../mybatisflex/core/util/TestAccount.java | 23 +++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 mybatis-flex-core/src/test/java/com/mybatisflex/core/util/LambdaUtilTest.java create mode 100644 mybatis-flex-core/src/test/java/com/mybatisflex/core/util/TestAccount.java diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/LambdaUtil.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/LambdaUtil.java index 38005819..62b0d6d1 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/LambdaUtil.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/util/LambdaUtil.java @@ -35,6 +35,10 @@ public class LambdaUtil { private static final Map, Class> implClassMap = new ConcurrentHashMap<>(); private static final Map, QueryColumn> queryColumnMap = new ConcurrentHashMap<>(); + public static Map, String> getFieldNameMap() { + return fieldNameMap; + } + public static String getFieldName(LambdaGetter getter) { return MapUtil.computeIfAbsent(fieldNameMap, getter.getClass(), aClass -> { SerializedLambda lambda = getSerializedLambda(getter); diff --git a/mybatis-flex-core/src/test/java/com/mybatisflex/core/util/LambdaUtilTest.java b/mybatis-flex-core/src/test/java/com/mybatisflex/core/util/LambdaUtilTest.java new file mode 100644 index 00000000..dde765ae --- /dev/null +++ b/mybatis-flex-core/src/test/java/com/mybatisflex/core/util/LambdaUtilTest.java @@ -0,0 +1,18 @@ +package com.mybatisflex.core.util; + +import org.junit.Assert; +import org.junit.Test; + +public class LambdaUtilTest { + + @Test + public void testIssue516() { + + for (int i = 0; i < 100; i++) { + LambdaUtil.getFieldName(TestAccount::getName); + } + + Assert.assertEquals(LambdaUtil.getFieldNameMap().size(), 1); + System.out.println("testIssue516"); + } +} diff --git a/mybatis-flex-core/src/test/java/com/mybatisflex/core/util/TestAccount.java b/mybatis-flex-core/src/test/java/com/mybatisflex/core/util/TestAccount.java new file mode 100644 index 00000000..9d7ebbf3 --- /dev/null +++ b/mybatis-flex-core/src/test/java/com/mybatisflex/core/util/TestAccount.java @@ -0,0 +1,23 @@ +package com.mybatisflex.core.util; + +public class TestAccount { + + private String name; + private int age; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } +}