JDK8新特性之方法引用【 ::】

这篇具有很好参考价值的文章主要介绍了JDK8新特性之方法引用【 ::】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🥳🥳Welcome Huihui's Code World ! !🥳🥳

接下来看看由辉辉所写的关于方法引用的相关操作吧

目录

🥳🥳Welcome Huihui's Code World ! !🥳🥳

一.是什么

二.为什么要用

三.什么时候用

四.怎么用

常见的引用方式


一.是什么

  •  符号表示: “ ::”
  • 是一种引用运算符,它所在的表达式称为方法引用 

二.为什么要用 

  • 1.简化代码
    • 方法引用可以将复杂的代码逻辑简化,让代码更加简洁,达到更高的可读性和可维护性。代码变得更加集中,从而减少了重复代码,更方便管理和修改。
  • 2.提高可读性
    • 使用方法引用可以提高代码的可读性。当我们使用方法引用时,代码更加简洁,更加易于理解,降低了代码的抽象程度,让代码读起来更像自然语言。这有助于加快代码的开发和维护速度。
  • 3.方便修改
    • 当需要修改某个方法时,如果代码中使用了方法引用,我们只需修改引用的那个方法即可,而不必修改其它代码。这样使得修改更加方便、快捷,不会影响其它逻辑,降低了出错的风险。
  • 4.支持lambda表达式
    • 方法引用是使用lambda表达式来表示的。因为lambda表达式是Java 8中引入的新技术,可以实现更加简单和灵活的代码编写。只需要一行代码,就可以将一个方法作为参数传递给另外一个方法,非常方便。

三.什么时候用

如果lambda表达式所要实现的额方案,已经有其他方法存在相同方案,那么则可以使用方法引用

四.怎么用

        实例:以strem流中的foreach为例

  • JDK8新特性之方法引用【 ::】

常见的引用方式

接口名 ::方法名

类名::静态方法

类名::普通方法

类名::new 调用的构造器               

示例:

 

​
package com.wh.test;

public class Person {
private int pid;
private String pname;

public Person() {
	// TODO Auto-generated constructor stub
}

public Person(int pid, String pname) {
	super();
	this.pid = pid;
	this.pname = pname;
}



public Person(int pid) {
	super();
	this.pid = pid;
}

public int getPid() {
	return pid;
}

public void setPid(int pid) {
	this.pid = pid;
}

public String getPname() {
	return pname;
}

public void setPname(String pname) {
	this.pname = pname;
}

@Override
public String toString() {
	return "Person [pid=" + pid + ", pname=" + pname + "]";
}

public void show() {
	System.out.println("我是好人😊😊");
}

public void show(String address) {
	System.out.println("我是"+address+"好人😊😊");
}


}

​
package com.wh.test;

import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;

/**
 * 分别使用lambda表达式和方法引用来完成示例
 * 
 * @author W
 *
 */
public class Demo1 {

	public static void main(String[] args) {
		// 无参构造
		Supplier<Person> p1 = () -> new Person();
		Supplier<Person> p2 = Person::new;

		// 有参构造
		Function<Integer, Person> p3 = pid -> new Person(pid);
		Function<Integer, Person> p4 = Person::new;

		// 类数组
		Function<Integer, String[]> p5 = len -> new String[len];
		Function<Integer, String[]> p6 = String[]::new;

		// 基本类型数组
		Function<Integer, int[]> p7 = len -> new int[len];
		Function<Integer, int[]> p8 = int[]::new;

		// 调用方法【空参】
		Consumer<Person> p9 = p -> p.show();
		Consumer<Person> p10 = Person::show;

	}
}

      好啦,今天的分享就到这了,希望能够帮到你呢! 😊😊                文章来源地址https://www.toymoban.com/news/detail-500050.html

到了这里,关于JDK8新特性之方法引用【 ::】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JDK8到JDK17有哪些吸引人的新特性?

    作者:京东零售 刘一达 2006年之后SUN公司决定将JDK进行开源,从此成立了OpenJDK组织进行JDK代码管理。任何人都可以获取该源码,并通过源码构建一个发行版发布到网络上。但是需要一个组织审核来确保构建的发行版是有效的, 这个组织就是JCP(Java Community Process)。2009年,SUN公

    2023年04月18日
    浏览(38)
  • JDK8新特性(一)集合之 Stream 流式操作

           首先我们应该知道:Stream流的出现,主要是用在集合的操作上。在我们日常的工作中,经常需要对集合中的元素进行相关操作。诸如:增加、删除、获取元素、遍历。         最典型的就是集合遍历了。接下来我们先举个例子来看看 JDK8 Stream流式操作出现之前,

    2024年01月23日
    浏览(27)
  • JDK8、JDK11、JDK17和JDK21这几个版本更新的主要特性

    JDK8 是 Java 的一个重大更新版本,引入了一系列新特性和改进,主要包括: Lambda 表达式: Lambda 表达式允许我们以简洁、函数式的方式编写代码,使代码更易于理解和维护。- Stream API : Stream API 提供了一套声明式处理数据的方式,使得对集合和数组的操作更加直观和高效。

    2024年04月29日
    浏览(36)
  • Java语法理论和面经杂疑篇《十一. JDK8新特性》

    目录 1. Java版本迭代概述 1.1 发布特点(小步快跑,快速迭代) 1.2 名词解释 1.3 各版本支持时间路线图 1.4 各版本介绍 1.5 JDK各版本下载链接 1.6 如何学习新特性 2. Java8新特性:Lambda表达式 2.1 关于Java8新特性简介 2.2 冗余的匿名内部类 2.3 好用的lambda表达式 2.4 Lambda 及其使用举例

    2023年04月22日
    浏览(27)
  • JDK8 新特性 Stream API 进阶 (结合案例详解--通透--讲清)

    👳我亲爱的各位大佬们好😘😘😘 ♨️ 本篇文章记录的为 JDK8 新特性 Stream API 进阶 相关内容,适合在学Java的小白,帮助新手快速上手,也适合复习中,面试中的大佬🙉🙉🙉。 ♨️ 如果文章有什么需要改进的地方还请大佬不吝赐教❤️🧡💛 👨‍🔧 个人主页 : 阿千弟 🔥

    2024年02月06日
    浏览(30)
  • Java—JDK8新特性—Lambda表达式【内含思维导图】

    目录 JDK8新特性 2.Lambda表达式 思维导图 2.1 什么是Lambda表达式 2.2 为什么使用Lamdba表达式 2.3 Lambda表达式基本语法 2.4 类型推断 2.5 Lambda练习 2.6 Lambda常用场景         官网提供网址:JDK 8 Features         Lamdba是一个 匿名函数 ,可以把Lamdba表达式理解为是一段可以传递的

    2024年02月03日
    浏览(33)
  • JDK8-JDK17中的新特性(var类型推断、模式匹配、Record、密封类)

    新的语法结构,勾勒出了 Java 语法进化的一个趋势,将开发者从 复杂、繁琐 的低层次抽象中逐渐解放出来,以更高层次、更优雅的抽象,既 降低代码量 ,又避免意外编程错误的出现,进而提高代码质量和开发效率。 1.1 Java的REPL工具: jShell命令 JDK9的新特性 Java 终于拥有了

    2024年02月06日
    浏览(37)
  • 【从零开始学Java第64期】JDK8 关于日期时间的新特性

    本系列为:从零开始学Java,为千锋教育资深Java教学老师独家创作 致力于为大家讲解清晰Java相关知识点,含有丰富的代码案例及讲解。如果感觉对大家有帮助的话,可以【点个关注】持续追更~ 有技术类问题,也欢迎大家和我们交流讨论! 在上一篇文章中本系列内容给大家讲

    2024年02月07日
    浏览(29)
  • JDK8 中Arrays.sort() 排序方法解读

    一、引言 在刷算法的时候经常需要对 数组 进行排序,第一反应就是直接使用java.util包下的Arrays.sort()方法直接排序。但在刷算法时会通过 时间复杂度 和 空间复杂度 对实现的算法进行评价,因此我们需对Arrays.sort()方法有所了解。 本文先行介绍Arrays.sort()中影响排序方式的几

    2024年02月02日
    浏览(48)
  • Ubuntu之apt-get系列--安装JDK8--方法/教程

    原文网址:Ubuntu之apt-get--安装JDK8--方法/教程_IT利刃出鞘的博客 本文介绍如何在Ubuntu下安装JDK8。 可以通过如下命令判断系统是否已安装jdk: 命令 结果 如上所示,表示还没有安装。 结果: 本处我安装openjdk-8-jdk 可以通过apt安装,命令如下: 命令 结果 如上则表示安装成功,

    2024年02月10日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包