【零基础学java】(方法引用)

什么是方法引用

把已经存在的方法拿过来用,当作函数式接口中抽象方法的方法体

方法引用符号 ::

疑问:方法引用与自定义方法的调用的区别?

1.传统调用:你是导演,指挥每个演员(方法)什么时候上场、做什么动作

2.方法引用:你是编剧,只写剧本(方法),Stream是导演,决定如何演绎

方法引用注意点
1.引用处需要是函数式接口
2.被引用的方法需要已经存在
3.被引用的方法的形参和返回值需要跟抽象方法的形参和返回值保持一致
4.被引用方法的功能需要满足当前的需求

引用静态方法

格式 类名::静态方法
范例: Integer::parseInt

引用成员方法

格式:对象:成员方法
其他类:其他类对象::方法名 需要先创建new 其他类的对象,再用类名调用方法名,同时,静态方法是没有this和super的!!!
本类:this::方法名
父类: super::方法名

引用构造方法

目的:创建这个类的对象

格式:类名::new
范例:Student::new

其他调用方式

使用类名引用成员方法

格式:类名::成员方法
范例:String::substring

引用数组的构造方法

特殊规则:需要有函数式接口
被引用的方法必须已经存在
被引用的方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致,返回值需要保持一致 被引用方法的功能需要满足当前的需求

抽象方法形参的详解:

第一个参数:表示被引用方法的调用者,决定了可以引用哪些类中的方法
在Stream流中,第一个参数一般都表示里面的每一个数据
假设流里面的数据都是字符串,那么使用这种方式进行方法引用,只能引用String这个类中的方法
第二个参数到最后一个参数,跟被引用方法的形参保持一致,如果没有第二个参数,说明被引用的方法需要是无参的成员方法

引用数组的构造方法
格式:数据类型[]::new
范例:int[]::new

类型一定要跟流里的数据类型保持一致,且需要注意流里的数据类型会发生变化

引用·javabean中的普通成员方法时有两种方式: 对象::方法名------》形参和返回值要一样
类名::方法名------》如果只有抽象方法一个形参,这个方法可以是空参,但返回值必须是一样的

相关推荐
工具罗某人6 小时前
docker快速部署minio
java·nginx·docker
2501_941877137 小时前
大规模系统稳定性建设方法论与工程实践分享
java·开发语言
学习在路上ing7 小时前
ollama部署模型
java·ollama
2501_941820497 小时前
面向零信任安全与最小权限模型的互联网系统防护设计思路与多语言工程实践分享
开发语言·leetcode·rabbitmq
浩瀚地学7 小时前
【Java】面向对象进阶-接口
java·开发语言·经验分享·笔记·学习
沛沛老爹7 小时前
用 Web 开发思维理解 Agent 的三大支柱——Tools + Memory + LLM
java·人工智能·llm·llama·rag
2501_941802487 小时前
面向微服务限流、熔断与降级协同的互联网系统高可用架构与多语言工程实践分享
开发语言·python
组合缺一7 小时前
灵动如画 —— 初识 Solon Graph Fluent API 编排
java·solon·graph·flow·langgraph·liquor
2501_941875287 小时前
分布式系统中的安全权限与审计工程实践方法论经验总结与多语言示例解析分享
开发语言·rabbitmq
强子感冒了7 小时前
Java Map学习笔记:HashMap、LinkedHashMap 与 TreeMap 的核心使用与区别
java·笔记·学习