我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【从入门到起飞】JavaSE—方法引用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【从入门到起飞】JavaSE—方法引用

🎊专栏【JavaSE】
🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
🎆音乐分享【The truth that you leave】
🥰欢迎并且感谢大家指出我的问题

文章目录


在这里插入图片描述

🍔概述

把已经有的方法拿过来用,作为函数式接口中抽象方法的方法体
使用::来引用

🍔注意

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

🎈如何确定是否是函数式接口

查看的是new后面的东西是否是函数式接口
在这里插入图片描述
在这里插入图片描述

🍔示例

对一个数组,进行倒序排序

在这里插入图片描述
方法引用
在这里插入图片描述

🎄方法引用的分类

🏳️‍🌈引用静态方法

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

在这里插入图片描述

🏳️‍🌈引用成员方法

格式:对象 :: 成员方法
例如
其他类:其他类对象 :: 方法名
本类:this :: 方法名
父类:super :: 方法名

在这里插入图片描述

🛸注意

静态方法是没有this的
所以下图会报错
在这里插入图片描述

🏳️‍🌈引用构造方法

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

🛸方法引用的规则:

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

Student.java

package com.itheima.a01myfunction;public class Student {    private String name;    private int age;    public Student() {    }    public Student(String str) {        String[] arr = str.split(",");        this.name = arr[0];        this.age = Integer.parseInt(arr[1]);    }    public Student(String name, int age) {        this.name = name;        this.age = age;    }        public String getName() {        return name;    }        public void setName(String name) {        this.name = name;    }        public int getAge() {        return age;    }        public void setAge(int age) {        this.age = age;    }    public String toString() {        return "Student{name = " + name + ", age = " + age + "}";    }}

FunctionDemo4.java

package com.itheima.a01myfunction;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.stream.Collectors;public class FunctionDemo4 {    public static void main(String[] args) {                //1.创建集合对象        ArrayList<String> list = new ArrayList<>();        //2.添加数据        Collections.addAll(list, "张无忌,15", "周芷若,14", "赵敏,13", "张强,20", "张三丰,100", "张翠山,40", "张良,35", "王二麻子,37", "谢广坤,41");        //3.封装成Student对象并收集到List集合中        //String --> Student              List<Student> newList2 = list.stream().map(Student::new).collect(Collectors.toList());        System.out.println(newList2);    }}

🏳️‍🌈使用类名引用成员方法

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

🛸方法引用的规则:

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

🛸抽象方法形参的详解:

第一个参数:表示被引用方法的调用者,决定了可以引用哪些类中的方法
在Stream流当中,第一个参数一般都表示流里面的每一个数据。
假设流里面的数据是字符串,那么使用这种方式进行方法引用,只能引用String这个类中的方法

第二个参数到最后一个参数:跟被引用方法的形参保持一致,如果没有第二个参数,说明被引用的方法需要是无参的成员方法

🛸局限性:

不能引用所有类中的成员方法。
是跟抽象方法的第一个参数有关,这个参数是什么类型的,那么就只能引用这个类中的方法。
在这里插入图片描述

🏳️‍🌈引用数组的构造方法

格式:数据类型[ ] :: new
例子:int[ ] :: new

🛸注意

数组的类型,需要跟流中数据的类型保持一致。
在这里插入图片描述

🍔总结

在这里插入图片描述
在这里插入图片描述

🍔彩蛋

在这里插入图片描述

来源地址:https://blog.csdn.net/m0_72853403/article/details/133141096

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【从入门到起飞】JavaSE—方法引用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

全面解析pip换源方法:从入门到精通

pip换源方法全面解析pip作为Python包管理器,是Python开发中常用的工具之一。但是在使用pip时,可能会遇到安装速度缓慢或无法连接到pip官方源等问题。这时候就需要切换pip源来加速下载和安装。本文将介绍从入门到精通pip换源
全面解析pip换源方法:从入门到精通
2024-01-16

js split函数用法总结(从入门到精通)

JS的split函数是用于将字符串分割成一个字符串数组。它的用法可以分为以下几个方面:1. 基本用法:- split():不传入任何参数,将字符串按照默认的分隔符(空格字符)进行分割。- split(separator):传入一个分隔符作为
2023-08-08

Golang文件读取的方法详解:从入门到精通

Golang文件读取的方法详解:从入门到精通Golang是一种有着强大且高效的编程语言,被广泛应用于云计算、大数据和网络编程等领域。在这些应用场景中,文件读取是一项基本的操作。本文将介绍Golang的文件读取相关知识,并提供具体的代码示例
Golang文件读取的方法详解:从入门到精通
2024-01-19

从入门到精通,轻松升级pip工具的几种方法

从入门到精通,轻松升级pip工具的几种方法引言:Python是一种流行的编程语言,其生态系统庞大而活跃。其中,pip工具是Python包管理器,可以帮助我们轻松安装、升级和管理Python包。然而,随着Python生态系统的不断发展,pi
从入门到精通,轻松升级pip工具的几种方法
2024-01-16

从入门到精通:CentOS上搭建web服务器的方法与技巧

要在CentOS上搭建web服务器,可以按照以下步骤进行操作:1. 安装Apache HTTP服务器:在终端中运行以下命令安装Apache服务器:```sudo yum install httpd```2. 启动Apache服务器:安装完成
2023-10-09

揭秘 HTML 空元素:从入门到精通,全面解析其用法和意义

HTML 空元素是指那些没有闭合标签的元素,它们在网页中具有特殊的作用。本文将从入门到精通,全面解析 HTML 空元素的用法和意义,帮助您更好地理解和使用这些元素。
揭秘 HTML 空元素:从入门到精通,全面解析其用法和意义
2024-02-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录