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

回到顶部