Selaa lähdekoodia

提交 lambda 不需指定 class 的例子

HCL 7 vuotta sitten
vanhempi
commit
f70b843e24

+ 16 - 1
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/toolkit/LambdaUtilsTest.java

@@ -3,6 +3,7 @@ package com.baomidou.mybatisplus.core.toolkit;
 import org.junit.Assert;
 import org.junit.Test;
 
+import com.baomidou.mybatisplus.core.toolkit.support.Property;
 import com.baomidou.mybatisplus.core.toolkit.support.SerializedLambda;
 
 import lombok.Getter;
@@ -14,12 +15,26 @@ public class LambdaUtilsTest {
         SerializedLambda lambda = LambdaUtils.resolve(TestPojo::getId);
         Assert.assertEquals(TestPojo.class.getName(), lambda.getImplClass().replace("/", "."));
         Assert.assertEquals("getId", lambda.getImplMethodName());
+
+        Cond<TestPojo> cond = new Cond<>();
+        System.out.println(cond.eq(TestPojo::getId, 123).toString());
     }
 
     @Getter
     private class TestPojo {
-
         private int id;
     }
 
+    private class Cond<T> {
+        private StringBuilder sb = new StringBuilder();
+        private Cond<T> eq(Property<T, Object> prop, Object val) {
+            SerializedLambda lambda = LambdaUtils.resolve(prop);
+            this.sb.append(lambda.getImplMethodName()).append(" = ").append(val);
+            return this;
+        }
+        @Override
+        public String toString() {
+            return sb.toString();
+        }
+    }
 }