java中方法引用

目录

方法引用:

引用静态方法

引用成员方法

引用构造方法

 使用类名引用成员方法

引用数组的构造方法

练习



方法引用:

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

在Java中,方法引用是一种简化Lambda表达式的方式,可以直接引用已经存在的方法来代替

Lambda表达式。通过方法引用,可以将方法作为一个参数传递给另一个方法,或者将方法赋值给

 一个变量。

使用方法引用可以简化代码,提高代码的可读性和简洁性。它可以让我们避免编写冗余的Lambda

表达式,直接引用已经存在的方法

::是什么符号?

方法引用符

方法引用时要注意什么?

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

引用静态方法

格式: 类名::静态方法

范例:Integer::parseInt 

  1. 方法需要已经存在
  2. 方法的形参和返回值需要跟抽象方法的形参和返回值保持一致
  3. 方法的功能:需要把形参的字符串转换成整数

将数据变为int类型👇

首先我们来看一般的思路

 

使用方法引用👇

引用成员方法

格式: 对象::成员方法

  1. 其他类:其他类对象::方法名
  2. 本类:this::方法名(引用处不能是静态方法)
  3. 父类:super::方法名(引用处不能是静态方法)

练习:

集合中有一些名字,按照要求过滤数据

正常思路如👇

用方法引用

先写个StringJudge类

引用构造方法

格式:类名::new

范例:Student::new

练习:

集合里面存储姓名和年龄,比如:张无忌,15要求:将数据封装成Student对象并收集到List集合中

Student类

public class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {this.age = age;}public String toString() {return "Student{name = " + name + ", age = " + age + "}";}
}

 

用方法引用👇

需要在Student类中加入

 使用类名引用成员方法

格式: 类名::成员方法

范例:string::substring

练习:

集合里面一些字符串,要求变成大写后进行输出

 

用方法引用👇

引用数组的构造方法

格式: 数据类型[]::new

范例:int[]::new

练习:

集合中存储一些整数,收集到数组当中

用引用方法👇


练习

练习1:

集合中存储一些字符串的数据,比如:张三,23收集到Student类型的数组当中(使用方法引用完成)

  

练习2:

创建集合添加学生对象,学生对象属性:name,age只获取姓名并放到数组当中(使用方法引用完成)

Student类

package com.youjunjie;public class Student {private String name;private int age;public Student() {}public Student(String str){this.name = str.split(",")[0];this.age = Integer.parseInt(str.split(",")[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 + "}";}
}

 


方法引用的这一期就到这里啦!!!感谢观看!!!

继续努力努力再努力!!!

 

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

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

相关文章

教务管理系统-学员办理体系介绍

随着时代的快速开展,教育方面也没落下,不仅是线下线上都呈现许多训练校园,办理软件也顺势而为的呈现广阔训练校园面前,许多的校园和训练组织也都在运用教务管理系统了。运用教务管理系统里边的学员办理体系可以让相应的办理人员更…

Redis的一致性

一、产生的原因 使用缓存,在进行写操作的时候就会出现不一致的问题。 一致性分为三类:强一致性,弱一致性,最终一致性 二、方案 2.1 延时双删 在更新数据库的操作前后分别进行一次删除缓存的操作,并在更新数据库之后…

《HelloGitHub》第 98 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、…

容器化部署fastdfs文件存储

目录 一、软件信息 二、构建fastdfs镜像 三、docker 启动fdfs服务 四、k8s部署fdfs服务 1、fdfs部署文件 五、外部服务访问 一、软件信息 fastdfs版本:fastdfs:V5.11 libfastcommon版本: V1.0.36 fastdfs-nginx-module版本:V1.20 nginx版本&…

使用Spring Boot和MybatisPlus的Java CRM客户关系管理系统源码

项目名称:CRM客户关系管理系统 功能模块及描述: 一、待办事项 今日需联系客户:显示当日需跟进的客户列表,支持查询和筛选。 分配给我的线索:管理分配给用户的线索,包括线索列表和查询功能。 分配给我的客…

导弹研究中常用坐标系及坐标系之间的变换

在导弹飞行控制过程中,需要时刻掌握导弹的飞行状态 (速度、位置、姿态角等),这就有赖于描述导弹飞行状态的坐标系。除了大地坐标系和地心大地直角坐标系外,导弹常用的坐标系还有很多,合理而恰当地选择参考系…

37【透视】两点透视

1 两点透视比较合适表现物体的结构 用两点透视绘制比较小的、箱子之类的物体 2 一点透视和两点透视的共存关系

vs - vs2013/vs2019工程文件的区别

文章目录 vs - vs2013/vs2019工程文件的区别概述笔记sln文件的区别VisualStudioVersion vcxproj文件的区别ToolsVersionPlatformToolset 备注更方便的方法END vs - vs2013/vs2019工程文件的区别 概述 为了避免安装UCRT的问题,想将手头的vs2019工程降级为vs2013工程…

解决Mac ~/.bash_profile 配置的环境变量重启终端后失效问题

在Mac系统中,配置环境变量通常是在~/.bash_profile文件中进行。然而,有时会遇到配置的环境变量在重启终端后失效的问题。 解决办法: 在~/.zshrc文件最后或最前面,增加一行 source ~/.bash_profile

SARscape雷达图像处理软件简介

合成孔径雷达(SAR)拥有独特的技术魅力和优势,渐成为国际上的研究热点之一,其应用领域越来越广泛。SAR数据可以全天候对研究区域进行量测、分析以及获取目标信息。高级雷达图像处理工具SARscape,能让您轻松将原始SAR数据…

Leetcode 第 131 场双周赛题解

Leetcode 第 131 场双周赛题解 Leetcode 第 131 场双周赛题解题目1:3158. 求出出现两次数字的 XOR 值思路代码复杂度分析 题目2:3159. 查询数组中元素的出现位置思路代码复杂度分析 题目3:3160. 所有球里面不同颜色的数目思路代码复杂度分析 …

AI 时代,产品经理该如何进化

前言 传统的互联网业务或者游戏业务,产品或者业务输出需求,技术人员只需要指哪打哪就好了。而人工智能发展到当下这个尴尬的阶段,仿佛它能干很多事,但是真把它往业务里搁就发现,这个叛逆的小东西不一定胜任的了这些有…

AI大模型学习笔记之四:生成式人工智能是如何工作的?

OpenAI 发布 ChatGPT 已经1年多了,生成式人工智能(AIGC)也已经广为人知,我们常常津津乐道于 ChatGPT 和 Claude 这样的人工智能系统能够神奇地生成文本与我们对话,并且能够记忆上下文情境。 GPT-4多模态分析对话 Midj…

数字机顶盒、显示器方案DCDC芯片OC5816 2A,18V同步降压DC-DC

概述 OC5816 是一款 2A 的高集成度、高效率同步整流降压转换器。在一个相当宽的输出电流负载范围内,OC5816 可以高效工作。 OC5816 的两种工作模式,固定频率PWM 峰值电流控制和轻载 PFM 开关模式,允许系统高效工作在一个相当宽的输出电流…

i 人 聊 天 手 册(e人禁止入内)

在之前的读书笔记-《蔡康永的说话之道》中,作者给大家分享了很多具体的要点,其更偏向于战术层面,我更想要的是一个类似聊天手册的东西,就让我自己来总结下吧。 虽然在 MBTI 中,按照获取能量的方式定义了 i 人、e 人&a…

【面试干货】如何选择MySQL数据库存储引擎(MyISAM 或 InnoDB)

【面试干货】如何选择MySQL数据库存储引擎(MyISAM 或 InnoDB) 💖The Begin💖点点关注,收藏不迷路💖 MySQL数据库存储引擎是一个 关键 的考虑因素。MySQL提供了多种存储引擎,其中最常用的是 MyISAM 和 InnoD…

攻防世界---misc---a_good_idea

1、下载附件得到一张图片,winhex分析,发现有压缩包 2、在kali中用普通用户对jpg进行binwalk 3、得到两张图片和一个文本,查看文本信息:提示试着找到像素的秘密 4、提到像素就想到了Stegsolve这个工具,将这两张图片用该…

106、python-第四阶段-3-设计模式-单例模式

不是单例类,如下: class StrTools():pass str1StrTools() str2StrTools() print(str1) print(str2) 运用单例,先创建一个test.py class StrTools():pass str1StrTools()然后创建一个hello.py,在这个文件中引用test.py中的对象&a…

JVM-JAVA-双亲委派机制

双亲委派机制 双亲委派机制Tomcat打破双亲委派机制 双亲委派机制 双亲委派机制,加载某个类时会先委托父加载器寻找目标类,找不到再委托上层父加载器加载,如果所有父加载器在自己的加载类路径下都找不到目标类,则在自己的类加载路径…

C语言:基础知识

创作不易,友友们给个三连吧 一、C语⾔的基本概念与发展历史 1.1 人和计算机进行交流的语言 通常,我们使用英语、中文等语言来进行两个人之间的交流。这意味着当我们想要和他人进行交流时,我们需要一种语言来表达自己的感受。同样的&#xf…