方法引用_通过this引用本类的成员方法
package com.chunzhi.Test08ThisMethodReference; /* 通过this引用本类的成员方法 */ public class Husband { // 定义一个买房子的方法 public void buyHouse() { System.out.println("北京二环内买一套四合院!"); } // 定义一个结婚的方法,参数传递Richable函数式接口 public void marry(Richable c) { c.buy(); } // 定义一个非常高兴的方法 public void soHappy() { // Lambda表达式的写法 // 调用结婚的方法,方法的参数Richable是一个函数式接口,传递Lambda表达式 marry(() -> { // 使用this.成员方法,调用本类买房子的方法 this.buyHouse(); }); // 引用的写法 /* 使用方法引用优化Lambda表达式 this是已经存在的 本类的成员方法不用buyHouse也是已经存在的 所以我们可以是直接使用this引用本类的成员方法buyHouse */ marry(this :: buyHouse); } public static void main(String[] args) { new Husband().soHappy(); } }
Richable函数式接口:
package com.chunzhi.Test08ThisMethodReference; // 定义一个富有的函数式接口 @FunctionalInterface public interface Richable { public abstract void buy(); }