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

Welcome Huihui's Code World ! !

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

目录

Welcome Huihui's Code World ! !

一.是什么

二.为什么要用

三.什么时候用

四.怎么用

常见的引用方式


一.是什么

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

二.为什么要用 

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

三.什么时候用

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

四.怎么用

        实例:以strem流中的foreach为例

  • JDK8新特性之方法引用【 ::】_第1张图片

常见的引用方式

接口名 ::方法名

类名::静态方法

类名::普通方法

类名::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 p1 = () -> new Person();
		Supplier p2 = Person::new;

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

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

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

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

	}
}

      好啦,今天的分享就到这了,希望能够帮到你呢!                 

你可能感兴趣的:(JDK8新特性,数学建模)