Lambda使用

102 阅读1分钟
package com.company.test;

public class lambdademo {

    interface PrintAPI{
        void print(String val);
    }

    public void out(String val,PrintAPI printAPI){
        printAPI.print(val);
    }

    public static void main(String[] args) {

        lambdademo lambdademo = new lambdademo();
        String str = "abc";
//方法一:
//        PrintAPI printAPI = new PrintAPI() {
//            @Override
//            public void print(String val) {
//                System.out.println(val);
//            }
//        };

//方法二
//        PrintAPI printAPI = (String val) -> {
//            System.out.println(val);
//        };

//三:可以省略参数类型,也可以省略返回值,会根据接口定义、返回值定义、参数定义自动地去推断lambda表达式
//        PrintAPI printAPI = (val) -> {
//            System.out.println(val);
//        };

//四:只有一个参数,可以省略括号
//        PrintAPI printAPI = val -> {
//            System.out.println(val);
//        };

//五:函数体只有一句,可以省略{ }
//        PrintAPI printAPI = val -> System.out.println(val);
        
//直接放进
        lambdademo.out(str,val -> System.out.println(val));
    }
}