test: add lambada test

This commit is contained in:
Michael Yang 2025-04-03 09:15:33 +08:00
parent d20377c049
commit 848d709140
3 changed files with 45 additions and 0 deletions

View File

@ -35,6 +35,10 @@ public class LambdaUtil {
private static final Map<Class<?>, Class<?>> implClassMap = new ConcurrentHashMap<>();
private static final Map<Class<?>, QueryColumn> queryColumnMap = new ConcurrentHashMap<>();
public static Map<Class<?>, String> getFieldNameMap() {
return fieldNameMap;
}
public static <T> String getFieldName(LambdaGetter<T> getter) {
return MapUtil.computeIfAbsent(fieldNameMap, getter.getClass(), aClass -> {
SerializedLambda lambda = getSerializedLambda(getter);

View File

@ -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");
}
}

View File

@ -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;
}
}