Java中的::

news2025/7/27 19:19:10

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

//实体类:
@Data
public class Book {
    private Integer id;
    private String type;
    private String name;
    private String description;
}
//测试类
//实现功能:关键字查询
@Test
void testByLike(){
    String name = "Spring";
    LambdaQueryWrapper<Book> lambdaQueryWrapper = new LambdaQueryWrapper<Book>();
    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方法就是单纯的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PCB设计---深入浅出的反弹图

作者&#xff1a;一博科技高速先生成员 孙小兵 众所周知&#xff0c;信号的反射与互连线的阻抗密切相关&#xff0c;可以说互连线中阻抗突变是产生信号反射的最直接原因。但究竟为什么会发生反射&#xff0c;反射对信号的影响是什么样的&#xff0c;信号反射的过程又是如何呢&…

MySql死锁

MySql死锁产生的原因?[面试7.0] 高并发情况下,事务之间对资源的访问顺序交替会导致死锁 加锁失败且出现环时触发死锁 事务1事务2begin;select *from testlock where id1 for update;begin;select *from testlock where id2 for update;select *from testlock where id2 for…

安卓系统的启动

Init.rc启动 创建和挂在启动所需的文件目录初始化和启动属性服务解析init.rc配置文件并启动Ztgote进程 Zygote进程 创建一个Server端的Socket预加载类和资源启动SystemServer进程等待AMS请求创建新的应用程序进程 SystemServer进程 启动Binder线程池&#xff0c;这样就可以…

环保数采仪 VOCs|污染源|水质污染源|烟气排放在线监测

计讯物联环保数采仪&#xff0c;丰富接口&#xff0c;符合环保行业规约标准&#xff0c;具备采集、无线传输、控制、告警等功能&#xff0c;广泛应用于Vocs在线监测、水污染大气污染远程监测、烟气排放在线监控等场景&#xff0c;数据全方位多角度实时采集、自动上报、远程在线…

汽车倒车防碰撞报警系统的设计

目 录 1 绪论 1 1.1 背景 1 1.2 国外研究情况 1 1.3 超声波测距的优势 2 2 基本原理 3 2.1 超声波简介 3 2.2 超声波基本特性 4 2.3 超声波模块简介 5 2.4 超声波传感器原理 6 2.5 超声波的测距原理 6 3 总体方案 8 4 硬件实现 9 4.1 电路 9 4.1.1 主控制最小系统电路 10 4.1.…

面试24K字节测试开发岗被血虐,到底具有怎样的技术才算高级水平?

前几天我朋友跟我吐苦水&#xff0c;这波面试又把他打击到了&#xff0c;做了6年软件测试。。。 下面这条招聘是在腾讯招聘官网截图下来的&#xff0c;首先我们对高级水平下一个定义吧&#xff0c;那它应该是对标这个职级该有的能力 什么样的工程师才能算高级&#xff1f;至少…

《数据库的原理与应用》--用两种方法实现S-T数据库创建

一、实验目的 复习数据库的定义&#xff0c;用两种方法实现S-T数据库创建&#xff1b;用两种方法创建数据库表&#xff0c;最后为数据库中的三个表增加数据&#xff1b;分离数据库和备份数据库。数据库表为&#xff1a; 学生表&#xff1a;Student(Sno,Sname,Ssex,Sage,Sdept…

Django ORM 多表操作:一对一、一对多、多对多的增删改,基于对象/双下划线的跨表查询

Django model ORM数据表相关操作 分析思路&#xff0c;创建数据表 对于表操作&#xff0c;表之间的关联关系&#xff0c;必须理解他们之间的关系&#xff0c;对于编程很重要。可以看看映射关系、外键和relationship查询 &#xff0c;至少明白外键相关基本知识。 &#xff08…

App Languages 批量导入管理Android多语言文案

AppLanguages支持安卓的多语言文案管理啦&#xff0c;支持批量的检测&#xff0c;批量导入&#xff0c;批量删除&#xff0c;批量替换&#xff0c;批量导出。 操作界面 批量导入 1&#xff09;需要选择res文件夹的路径&#xff0c;方便创建和寻找本地的多语言文件 2&#xff…

ui界面的介绍

创建一个项目时默认选择带有ui界面&#xff0c;ui界面的作用是方便设计者设计功能。 ui界面常见的功能&#xff1a; 方便对象的创建&#xff0c;拖入到窗口中即可方便布局&#xff0c;可以直接使用布局对控件进行修饰方便制作信号&#xff0c;通过转到槽的机制&#xff0c;快速…

Cesium 入门(一)无服务 Cesium 环境

Cesium 入门&#xff08;一&#xff09;无服务环境 一、无服务环境下的 Cesium 无网络环境下的静态 cesium 地图服务&#xff0c;cesium 1.98.1 已经支持无 token 情况下的地图显示&#xff0c;默认 token 可用来展示 3d 地图&#xff0c;老版本 cesium&#xff0c;需自行前往…

Golang入门笔记(15)—— 数组

编程的世界中&#xff0c;或许是因为一次一次的定义变量&#xff0c;维护管理起来都太费劲了&#xff0c;所以推出了数组&#xff0c;将数据用数组的形式管理起来。 参考代码&#xff1a; package mainimport "fmt"func main() {var scores [5]intscores[0] 90sco…

RabbitMQ基础

文章目录一. Hello World二. Work Queues三. 消息应答1. 自动应答2. 手动应答3. 批量应答4. 消息自动重新入队四. 持久化1. 实现队列持久化2. 实现消息持久化五. 消息不公平分发1. 配置不公平分发2. 预取值六. 发布确认1. 发布确认原理2. 开启发布确认3. 单个发布确认4. 批量发…

DOM介绍及DOM获取元素的方式

1、DOM介绍 DOM&#xff08;Document Object Model&#xff09;&#xff1a;文档对象模型其实就是操作html中的标签的一些能力我们可以操作哪些内容○ 获取一个元素 ○ 移除一个元素 ○ 创建一个元素 ○ 向页面里面添加一个元素 ○ 给元素绑定一些事件 ○ 获取元素的属性 ○ …

Hive集群部署实验

目录一、实验介绍1.1 实验内容1.2 实验知识点1.3 实验环境1.4 实验资源1.5 实验步骤清单二、实训架构三、实验环境准备四、实验步骤4.1 Hive部署4.1.1 安装Hive4.1.3 修改hive配置文件4.1.4 创建Hadoop测试目录4.1.5 初始化hive元数据库4.2 Hive测试4.2.1 启动Hive4.2.2 创建测…

pytorch的gpu版本安装以及cpu版本的卸载

目录 前言 一、安装显卡驱动 二、安装Visual Studio 2019 三、安装CUDA 四、安装cudnn 五、安装anaconda 六、安装PyTorch 前言 因为最近需要导师的指导&#xff0c;我开始了unet的学习&#xff0c;虽然之前也学习过机器学习&#xff0c;但是只是浅尝辄止&#xff0c;没…

你好,以太坊社区,你准备好参加 ETH India 2022 黑客马拉松活动了吗

你好&#xff0c;以太坊社区&#xff0c;我们很高兴通过 ETH Global即将举行的ETH India 2022 黑客马拉松活动将Cartesi 技术带到亚洲&#xff01;如果你是一位喜欢探索尖端技术且是一位创新型开发人员&#xff0c;我们期待着你的到来&#xff0c;并且想帮助你将美好的DApps 发…

[BLIP]-多模态Language-Image预训练模型

论文&#xff1a;https://arxiv.org/pdf/2201.12086.pdf 代码&#xff1a;GitHub - salesforce/BLIP: PyTorch code for BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation demo&#xff1a;BLIP - a Hugging Face …

代码随想录算法训练营第二天|LeetCode 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II

LeetCode 977.有序数组的平方 题目链接&#xff1a;977.有序数组的平方 思路&#xff1a; 1、先对每个数进行遍历平方&#xff0c;并插入新的容器中 2、对容器进行排序&#xff0c;返回就可以了 缺陷&#xff1a;开辟了新的容器空间 class Solution { public:vector<int…

2019年1+X 证书 Web 前端开发中级理论考试题目原题+答案——第二套

&#x1f4da;文章目录 &#x1f3af;关于1X标准 &#x1f3af;关于中级考点 ⏩&#x1f4bb;答案速查 一、单选题&#xff08;每小题2分&#xff0c;共30小题&#xff0c;共60分&#xff09; 二、多选题&#xff08;每小题2分&#xff0c;共15小题&#xff0c;共30分&…