java里面的方法引用,mybatis-plus怎么就返回了字段?
下面是mybatis-plus里面的一段代码,里面的Article::getId,这个方法引用怎么就返回一个id字段呢,而不是id的值,这让我有点小疑惑,请求大佬指点一二!,感谢!
- LambdaQueryWrapper<Article> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(Article::getId,article.getId());
回答:
mybatis-plus的工作机制首先通过代码拼接SQL
wrapper.eq(Article::getId,article.getId()),这一句的意思就是eq是等于 就是 id=(article.getId的值),前面是条件的字段,后面是条件的值,最终拼接sql就是
select 列 from article where id = 1(此处的1就是article.getId()的值)
回答:
可以取到传进去的方法名,然后就取到了字段名
回答:
Article::getId其实目的就是返回id这个字符串,方法你可以看com.baomidou.mybatisplus.core.toolkit.support.SerializedLambda#resolve,他是通过序列化和反序列化来处理这个lambda表达式的,得到SerializedLambda对象以后,implMethodName字段就是getId这个字符串,然后截取出id
回答:
百度jdk1.8 lambda
以上是 java里面的方法引用,mybatis-plus怎么就返回了字段? 的全部内容, 来源链接: utcz.com/p/944279.html