java方法引用替代lambda表达式
来源:互联网 发布:22lr子弹数据 编辑:程序博客网 时间:2024/04/28 03:46
/* * 方法引用: * 当Lambda表达式中仅仅调用一个已经存在的方法时, * 我们就可以使用方法引用代替Lambda表达式。这样 * 可以让程序进一步简洁。 * * 方法引用分为以下四种: * 1 引用静态方法 * 2 通过对象(引用)引用实例方法 * 3 通过类型引用实例方法 * 4 引用构造器 */ public class MethodReference { public static void main(String[] args) { Person person1 = new Person("人1", 20, 150, 160); Person person2 = new Person("人2", 30, 150, 120); Friend f = (p1, p2) -> Person.makeFriend(p1, p2); // f.makeFriend(person1, person2); // 引用静态方法,抽象方法的每个参数会依次传递给 // 所引用的静态方法。 f = Person::makeFriend; Tools tool = new Tools(); f = (p1, p2) -> tool.makeFriend(p1, p2); // 通过对象引用实例方法 // 抽象方法的每个参数会依次传递给所引用的实例方法。 f = tool::makeFriend; f = (p1, p2) -> p1.makeFriend2(p2); // 通过类型引用实例方法 // 抽象方法第一个参数用来从当所引用实例方法的调用对象。 // 抽象方法的第二个参数起,会依次传递给所引用的实例方法。 f = Person::makeFriend2; Create c = (name, age, height, weight) -> new Person(name, age, height, weight); // 引用构造器 //抽象方法的每个参数会依次传递给所引用构造器的参数 c = Person::new; }}@FunctionalInterfaceinterface Friend { // 两个人交朋友 void makeFriend(Person p1, Person p2);}@FunctionalInterfaceinterface Create { Person build(String name, int age, int height, int weight);} class Person { private String name; private int age; private int height; private int weight; public Person(String name, int age, int height, int weight) { super(); this.name = name; this.age = age; this.height = height; this.weight = weight; } 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 int getHeight() { return height; } public void setHeight(int height) { this.height = height; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public void makeFriend2(Person p) { //使用当前对象this与参数p交朋友 } public static void makeFriend(Person p1, Person p2) { //两个人交朋友的细节 System.out.println("两个人交朋友的细节"); }} class Tools { public void makeFriend(Person p1, Person p2) { System.out.println("两个人交朋友的细节"); } }
0 0
- java方法引用替代lambda表达式
- Java Lambda表达式及方法引用
- java lambda表达式和方法引用
- lambda表达式:方法引用
- java8的lambda表达式以及方法引用
- Java中Lambda表达式与方法引用和构造器引用
- Java 8 新特性:Lambda 表达式之方法引用(Lambda 表达式补充版)——诺诺"涂鸦"记忆
- Java 8新特性:新语法方法引用和Lambda表达式及全新的Stream API
- Java 8 函数式接口、lambda表达式、方法以及构造器引用
- Java SE8 Lambda 基础入门---方法引用
- Lambda表达式--Java8的新功能案例详解(2) Lambda表达式的方法引用
- Java8 lambda表达式、函数式接口、方法引用
- Java8 Lambda表达式 函数式编程 方法引用
- Java 函数式接口、lambda表达式、函数引用
- lambda表达式:构造器引用
- Lambda表达式中的引用传递
- 匿名方法、Lambda表达式
- 匿名方法 Lambda表达式
- 热更新接入心得
- 15 个 Android 通用流行框架大全
- 魅力物理1
- 模糊查询like的使用
- BZOJ 4515 [Sdoi2016]游戏
- java方法引用替代lambda表达式
- 在AngularJS中显示模型中的数据有两种方式:
- 北大AI公开课 嵌入式人工智能笔记
- caffe部分配置修改后,重新编译caffe的教程
- caffe安装出错: undefined reference to `lzma_index_size@XZ_5.0'
- Android启动默认是横屏或者竖屏和setprop,getprop,watchprops命令的使用
- HttpUtil工具类
- 二元线性回归最小二乘法公式推导
- order by 降序desc,升序asc,排名函数 rank()over()