【JDK 8-函数式编程】4.6 方法引用与构造函数引用

一、 方法引用与构造函数引用

1. 说明

2. 语法:

二、静态方法

三、实例方法

四、构造函数

4.1 单个参数

4.2 2个参数

五、执行结果 


一、 方法引用与构造函数引用

  • 以前调用:对象.方法名类名.方法名

  • jdk1.8提供了另外一种调用方式 ::

1. 说明

  • 用来直接访问类 或者实例已经存在的方法或构造方法

  • 通过方法引用,可以将方法的引用赋值给一个变量

2. 语法:

  • 左边是容器(可以是类名,实例名)

  • 中间是”::"

  • 右边是方法名

package com.learning.javalearning.lambda.chapter4;import java.util.function.BiFunction;
import java.util.function.Function;public class Adduce {public static void main(String[] args) {//使用双冒号:: 来构造静态函数的引用// Integer.parseInt("wew);Function<String, Integer> fun = Integer::parseInt;Integer value = fun.apply("1024");System.out.println(value);//使用双冒号::来构造非静态函数引用String content ="非静态函数引用";Function<Integer,String> func = content::substring;String result = func.apply( 1);System.out.println(result);// 2个入参BiFunction<String,Integer,User> biFunction = User::new;User user1 = biFunction.apply("张无忌",1);System.out.println(user1);// 1个入参Function<String,User> function = User::new;User user2 = function.apply("赵敏");System.out.println(user2);sayHello(String::toUpperCase,"abvdefg");}private static  void sayHello(Function<String,String> func,String param){String result = func.apply(param);System.out.println(result);}
}class User {private String name;private int age;public User() {}public User(String name, int age) {this.name = name;this.age = age;}public User(String name) {this.name = name;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +'}';}
}

二、静态方法

  • className::methodName

        //使用双冒号:: 来构造静态函数的引用// Integer.parseInt("wew);Function<String, Integer> fun = Integer::parseInt;Integer value = fun.apply("1024");System.out.println(value);


三、实例方法

  • Instance::methodName

        //使用双冒号::来构造非静态函数引用String content ="非静态函数引用";Function<Integer,String> func = content::substring;String result = func.apply( 1);System.out.println(result);

四、构造函数

  • 类名::new

4.1 单个参数

        // 1个入参Function<String,User> function = User::new;User user2 = function.apply("赵敏");System.out.println(user2);

4.2 2个参数

        // 2个入参BiFunction<String,Integer,User> biFunction = User::new;User user1 = biFunction.apply("张无忌",1);System.out.println(user1);

 

五、执行结果 

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

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

相关文章

Jmeter —— 常用的几种断言方法(基本用法)

在使用JMeter进行性能测试或者接口自动化测试工作中&#xff0c;经常会用到的一个功能&#xff0c;就是断言&#xff0c;断言相当于检查点&#xff0c;它是用来判断系统返回的响应结果是否正确&#xff0c;以此帮我们判断测试是否通过&#xff0c;本文 主要介绍几种常用的断言&…

数据结构上机练习——单链表的基本操作、头文件、类定义、main函数、多种链表算法的实现,含注释

文章目录 单链表的基本操作实现1.头文件2.类定义和多种算法的实现2.1创建空表2.2头插法创建n个元素的线性链表2.3一个带头节点的链表存放一组整数&#xff0c;设计一个算法删除值等于x的所有节点。2.4计算线性表中值为偶数的节点个数2.5一个带头节点的单链表heada存放一组整数&…

13个Python必备的知识

Python在编程语言流行指数PYPL中已多次排名第一。 由于其代码可读性和更简单的语法&#xff0c;它被认为是有史以来最简单的语言。 NumPy、Pandas、TensorFlow等各种AI和机器学习库的丰富性&#xff0c;是Python核心需求之一。 如果是数据科学家或 AI/机器学习的初学者&#xf…

【论文记录】Boosting Detection in Crowd Analysis via Underutilized Output Features

Boosting Detection in Crowd Analysis via Underutilized Output Features Abstract Crowd Hat使用一种混合的2D-1D压缩技术进行细化空间特征与获取特定人群信息的空间和数量分布。进一步的&#xff0c;Crowd Hat采用自适应区域的NMS阈值与一个解耦然后对齐的范式来解决基于检…

小程序 navigateBack 携带参数返回的三种方式(详细)

如果觉着主图好看,点个赞,你早晚也会看到这么好看的景色! 第一种方式 getCurrentPages 获取当前页面栈。数组中第一个元素为首页,最后一个元素为当前页面。不要尝试修改页面栈,会导致路由以及页面状态错误。不要在 App.onLaunch 的时候调用 getCurrentPages(),此时 page …

java在mysql中查询内容无法塞入实体类中,报错 all elements are null

目录 一、问题描述二、解决方案 一、问题描述 java项目中整体配置了mysql的驼峰式字段匹配规则。 mybatis.configuration.map-underscore-to-camel-casetrue由于项目需求&#xff0c;需要返回字段为file_id&#xff0c;file_url&#xff0c;并且放入实体类中&#xff0c;实体…

通讯网关软件005——利用CommGate X2OPC实现OPC客户端访问MS SQL服务器

本文推荐利用CommGate X2OPC实现OPC客户端访问MS SQL服务器获取数据。CommGate X2OPC是宁波科安网信开发的网关软件&#xff0c;软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示&#xff0c;上位机通过OPC Client软件来获取MS SQL数据库的数据。 …

three.js——辅助器AxesHelper和轨道控制器OrbitControls的使用

辅助器AxesHelper和轨道控制器OrbitControls的使用 前言效果图1、辅助器AxesHelper:是物体出现辅助的x/y/z轴2、轨道控制器OrbitControls2.1导入OrbitControls文件2.2 使用2.3 如果OrbitControls改变了相机参数&#xff0c;重新调用渲染器渲染三维场景 前言 1、AxesHelper 官网…

阿里云无影电脑:免费体验无影云电脑3个月

阿里云无影云电脑免费领取流程&#xff0c;免费无影云电脑配置为4核8G&#xff0c;可以免费使用3个月&#xff0c;阿里云百科分享阿里云无影云电脑&#xff08;云桌面&#xff09;免费申请入口、申请流程及免费使用限制条件说明&#xff1a; 目录 阿里云无影云电脑免费申请入…

2023/9/18 -- C++/QT

作业 完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&#xff0c;给定两…

计算机视觉与深度学习-经典网络解析-ResNet-[北邮鲁鹏]

这里写目录标题 ResNet参考产生背景贡献残差模块残差结构 批归一化ReLU激活函数的初始化方法 网络结构为什么残差网络性能好&#xff1f; ResNet ResNet&#xff08;Residual Neural Network&#xff09;是一种深度卷积神经网络模型&#xff0c;由Kaiming He等人在2015年提出。…

【初阶数据结构】树结构与二叉树的基础概念

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;今天带来数据结构里的重点内容也是在笔试&#xff0c;面试中的常见考点——树与二叉树&#xff0c;其中二叉树又分为很多种&#xff0c;我们先来讲讲基础的内容带大家…