Java中的::
创始人
2024-04-10 01:54:34
0

今天在练习SpringBoot的时候,看到了以下这种写法:

//实体类:
@Data
public class Book {private Integer id;private String type;private String name;private String description;
}
//测试类
//实现功能:关键字查询
@Test
void testByLike(){String name = "Spring";LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper();lambdaQueryWrapper.like(name!=null,Book::getName,name);bookDao.selectList(lambdaQueryWrapper);
}

可以看到,测试类中使用到了这种写法:Book::getName,虽然平时看到有的源码使用到了这种写法,但我使用的还是比较少。因此对这种写法不是很了解,接下来我们就来讨论一下::


经查询,该用法是Java8引入的新特性:方法引用。其通常与lambada表达式结合来简化代码。

通过Java引用,我们能够直接引用已有java类或对象的方法或构造器

Book::getName即为:获取Book中的name属性所对应的值。

在上述代码中,该写法可以让编写者避免输错属性名。


当然,不是所有情况都能使用::方法引用。

其使用有一定的条件:lambada表达式的主体仅包含一个表达式,且lambada表达式只调用一个已经存在的方法;被引用的方法的参数列表与lambada表达式的输入输出一致

图源网络

通过上面这个图,可以很清晰的观察到方法引用使用的条件–》必须进行单纯的引用。像getter和setter方法就是单纯的。

相关内容

热门资讯

特朗普再掀风波,威胁起诉美联储... 美东时间周一,“懂王”特朗普再次将矛头指向美联储,公开表示正考虑以“严重失职”为由,对现任美联储主席...
*ST熊猫收到中国证监会立案告... 雷达财经雷助吧出品 文|简白 编|深海 12月29日,*ST熊猫发布《关于收到中国证券监督管理委员会...
以法治之力助推政务服务提质增效... 河南日报客户端记者 马涛 杨伟 河南日报社全媒体记者 刘霄 2026年1月1日,《许昌市政务服务条例...
诉讼证据系AI生成,触碰法律红... 文丨默 达 图丨张宇晴 近日,湖北一地法院审理案件时,发现原告提交的照片中赫然带有“豆包AI生成”...
安永参与浙江省境外投资法律合规... 12月26日,由浙江省商务厅主办、浙江省境外投资企业协会承办、浙企出海综合服务港协办的浙江省境外投资...
经济日报:财政政策明年如何更加... 中央经济工作会议部署,2026年我国继续实施更加积极的财政政策。扩大财政支出盘子、优化政府债券工具组...
皮海洲:监事会撤销了,独立董事... 皮海洲 | 立方大家谈专栏作者 随着时间向2026年靠近,有越来越多的上市公司公布了撤销公司监事会的...
45岁家长放学护岗时晕倒送医后... 极目新闻记者 刘琴 12月29日下午,张家界永定区天门小学一位家长在放学护岗时晕倒,送医后死亡,当地...
男子去世现配偶、亲生女、继子和... 再婚家庭的遗产继承问题,往往争执不下牵连众多,常常让亲情与法律纠缠不清,比普通家庭更加复杂。近日,宣...
天亿马中标:鹤壁市社会治安综合... 证券之星消息,根据天眼查APP-财产线索数据整理,根据中国共产党鹤壁市委政法委员会12月28日发布的...