🥳🥳Welcome Huihui's Code World ! !🥳🥳
接下来看看由辉辉所写的关于方法引用的相关操作吧
目录
🥳🥳Welcome Huihui's Code World ! !🥳🥳
一.是什么
二.为什么要用
三.什么时候用
四.怎么用
常见的引用方式
一.是什么
- 符号表示: “ ::”
- 是一种引用运算符,它所在的表达式称为方法引用
二.为什么要用
- 1.简化代码
- 方法引用可以将复杂的代码逻辑简化,让代码更加简洁,达到更高的可读性和可维护性。代码变得更加集中,从而减少了重复代码,更方便管理和修改。
- 2.提高可读性
- 使用方法引用可以提高代码的可读性。当我们使用方法引用时,代码更加简洁,更加易于理解,降低了代码的抽象程度,让代码读起来更像自然语言。这有助于加快代码的开发和维护速度。
- 3.方便修改
- 当需要修改某个方法时,如果代码中使用了方法引用,我们只需修改引用的那个方法即可,而不必修改其它代码。这样使得修改更加方便、快捷,不会影响其它逻辑,降低了出错的风险。
- 4.支持lambda表达式
- 方法引用是使用lambda表达式来表示的。因为lambda表达式是Java 8中引入的新技术,可以实现更加简单和灵活的代码编写。只需要一行代码,就可以将一个方法作为参数传递给另外一个方法,非常方便。
三.什么时候用
如果lambda表达式所要实现的额方案,已经有其他方法存在相同方案,那么则可以使用方法引用
四.怎么用
实例:以strem流中的foreach为例
常见的引用方式
接口名 ::方法名
类名::静态方法
类名::普通方法
类名::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; } }
好啦,今天的分享就到这了,希望能够帮到你呢! 😊😊