lambda表达式的使用

lambda表达式:

//推导lambda表达式
public class TestLambda {
    //静态内部类
    static class Like2 implements ILike{
        @Override
        public void lambda() {
            System.out.println("I Like Lambda2!");
        }
    }
    public static void main(String[] args) {
        ILike like = new Like();
        like.lambda();

        like = new Like2();
        like.lambda();

        //局部内部类
         class Like3 implements ILike{
            @Override
            public void lambda() {
                System.out.println("I Like Lambda3!");
            }
        }

        like = new Like3();
         like.lambda();

         //5.匿名内部类
         like = new ILike() {
             @Override
             public void lambda() {
                 System.out.println("I Like Lambda4!");
             }
         };
        like.lambda();

         //6.用lambda实现
        like = () -> {
            System.out.println("I Like Lambda5!");
        };
        like.lambda();
    }
}
//定义一个函数式接口
interface ILike{
    void lambda();
}
//实现类
class Like implements ILike{
    @Override
    public void lambda() {
        System.out.println("I Like Lambda!");
    }
}
//运行结果:I Like Lambda!
//		  I Like Lambda2!
//		  I Like Lambda3!
//		  I Like Lambda4!
//		  I Like Lambda5!

lambda的简化:

public class TestLambda2 {
    public static void main(String[] args) {
        //ILove love = new ILove();
        //love.na("小明");
        Love l1 = (String name) ->{
            System.out.println(name);
        };
        l1.na("红红");
        Love l2 = (name) ->{
            System.out.println(name);
        };
        l2.na("绿绿");
        Love l3 = (name) ->{
            System.out.println(name);
        };
        l3.na("蓝蓝");
    }
}

interface Love{
    void na(String name);
}
class ILove implements Love{

    @Override
    public void na(String name) {
        System.out.println("下个就是你-->" + name);
    }
}

总结:

1.  lambda表达式只有一行代码的时候才可以省掉花括号。
2.  使用lambda表达式的前提是必须为函数接口。
3.  当有参数时,可以去掉参数类型和小括号;当有多个参数可以同时去掉所有参数的类型,但是不能去掉小括号。

刚刚参加工作,很有很多不懂不会的,发现错误,欢迎指正,谢谢!
原文地址:https://www.cnblogs.com/xd-study/p/13048357.html