分析:

  Lambda表达式的目的,打印参数传递的字符串

  把参数s,传递给了System.out对象,调用out对象方法println对字符串进行输出

注意:

  1.System.out对象是已经存在的

  2.println方法也是存在的

  所以我们可以使用方法引用来优化Lambda表达式

 

实现:

@FunctionalInterface
public interface Printable {

    void print(String s);

}
public class Demo01Printable {
    //定义一个方法参数传递Printable接口,对字符串进行打印
     public static void printString(Printable p){
         p.print("HelloWorld");
     }

    public static void main(String[] args) {
        //调用printString方法,方法的参数printable是一个函数式接口所以可以传递Lambda
         printString((s)->{
             System.out.println(s);
         });
                     printString(System.out::println);
    }
}

 

 

 

 

 

 

 

通过对象名引用成员方法

 

代码如下:

@FunctionalInterface
public interface Printable {

    void print(String s);

}
public class MethodReObject {
    
    public void printUpperCaseString(String str){
        System.out.println(str.toUpperCase());
    }

}
public class demo01ObjectMethodReference {

public static void printString(Printable p){
p.print("Hello");
}

public static void main(String[] args) {

printString((s)->{
MethodReObject methodReObject = new MethodReObject();
methodReObject.printUpperCaseString(s);
});

/*
使用方法引用Lambda
对象是已经存在MethodReferObject
成员方法也是已经存在的printUpperCaseString
所以我们可以以使用引用成员方法
*/
MethodReObject methodReObject = new MethodReObject();
printString(methodReObject::printUpperCaseString);

}

}

 

 

 

posted on 2022-07-21 14:32  淤泥不染  阅读(29)  评论(0编辑  收藏  举报