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方法就是单纯的。

相关内容

热门资讯

苹果起诉跳槽至OPPO前员工,... 彭博社等外媒8月23日报道,苹果向美国加州北区联邦法院提起诉讼,指控前Apple Watch传感器系...
关联犯罪!南非一安保公司被查缴... 新华社约翰内斯堡8月23日电(记者蒋国鹏 白舸)据南非媒体22日报道,南非警方日前从一家注册私人安保...
有人在网上售卖“南极地衣”,称... 据媒体报道,8月18日,有网友发帖称,其在某二手交易平台发现,有疑似“科考人员”在售卖从南极带回的地...
俄外长:泽连斯基拒绝所有特朗普... 【俄罗斯外交部长谢尔盖·拉夫罗夫表示,弗拉基米尔·泽连斯基在华盛顿会谈上对美国总统唐纳德·特朗普提出...
广州多区推进HPV疫苗惠民政策 中新网广州8月23日电 (记者 蔡敏婕)广州市番禺区、天河区、越秀区、海珠区、增城区、花都区以及白云...
安东尼重返贝蒂斯:曼联与西甲劲... 在转会窗口即将关闭之际,贝蒂斯正在全力以赴地推动巴西国脚安东尼的回归。这位年轻的边锋在曼联的表现起伏...
涉嫌严重违纪违法,李立新被查 据山东省纪委监委网站,临沂市生态环境局党组成员、市生态环境监控中心主任李立新涉嫌严重违纪违法,目前正...
66名中俄律师入选东北亚涉外律... 中新社哈尔滨8月23日电 (记者 史轶夫)中国·哈尔滨-俄罗斯·滨海边疆区涉外法律服务交流会23日在...
原创 于... 最近男星许凯陷入出轨劈腿私生活混乱的风波当中,虽然于正和许凯本人对此事已经发声明澄清辟谣,但随着此事...