this指代当前对象,如果需要引用的方法就是本类当中的成员方法,那么可以使用***this::成员方法***格式来优化Lambda表达式

实现:

@FunctionlInterface
public intterface Study {
    // 定义一个学习抽象方法
    void study();
}
public class Husband {

    /**
     * 通过this引用本类方法
     */
    public void buyHouse(){
        System.out.println("北京二环内卖一套四合院");
    }

    public void marry(Richable r){
        r.buy();
    }

    public void soHappy(){
        marry(()->{
            this.buyHouse();
        });
    }

    public static void main(String[] args) {

        new Husband().soHappy();

    }

}

 

 

 

 

 

 

 

 

方法引用_类的构造器(构造方法)引用

代码:

public class Person {

    private String name;

    public Person(String name) {
        this.name = name;
    }

    public Person() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                '}';
    }
@FunctionalInterface
public interface  PersonBuilder {

    Person builderPerson(String name);
 public static void printName(String name,PersonBuilder pb){
        Person person = pb.builderPerson(name);
        System.out.println(person.getName());
    }

    public static void main(String[] args) {

        printName("迪丽热巴",(String name)->{
            return new Person(name);
        });
        /*
            使用方法引用优化Lambda表达式
            构造方法


         */
        printName("古力娜扎",Person::new);
    }

 

posted on 2022-07-21 16:31  淤泥不染  阅读(53)  评论(0)    收藏  举报