lambda表达式示例

public class Test {
    //静态内部类
    static class Like2 implements Ilike {
        public void lambda() {
            System.out.println("hello,lambda2");
        }
    }
    //主函数
    public static void main(String[] args) {
        //1、最常见实现方法
        Ilike like=new Like();
        like.lambda();

        //2、静态内部类实现方法
        like = new Like2();
        like.lambda();

        //3、局部内部类实现
        class Like3 implements Ilike {
            public void lambda() {
                System.out.println("hello,lambda3");
            }
        }
        like = new Like3();
        like.lambda();

        //4、局部内部类实现
        like = new Ilike() {
            public void lambda() {
                System.out.println("hello,lambda4");
            }
        };
        like.lambda();

        //5、lambda简化
        Ilike like5 = () -> {
            System.out.println("hello,lambda5");
        };
        like5.lambda();

    }
}
//实现接口
interface Ilike {
    public void lambda();
}
//外部类
class Like implements Ilike {
    public void lambda() {
        System.out.println("hello,lambda");
    }
}

结果:

hello,lambda
hello,lambda2
hello,lambda3
hello,lambda4
hello,lambda5

进程已结束,退出代码为 0

使用lambda 表达式的优点

  1. 避免匿名内部类定义过多
  2. 可以让你的代码看起来很简洁
  3. 去掉了一堆没有意义的代码,只留下核心的逻辑。

注意点:

  • 从java 8 开始支持lambda 表达式
  • 理解Functional Interface(函数式接口)是学习Java8 lambda表达式的关键所在。

其他示例

多参数注意加上括号

public class lambda {
    public static void main(String[] args) {
        //1、lambda 表达式简化
        ILove love =(int i)->{
            System.out.println("love1");
        };
        love.love(1);
        //2、参数类型简化
        ILove love2 =(i)->{
            System.out.println("love2");
        };
        love2.love(1);
        //3、简化括号
        ILove love3 =a->{
            System.out.println("love3");
        };
        love3.love(1);
        //4、简化括号
        ILove love4 =a-> System.out.println("love4");
        love4.love(1);
    }
}
interface ILove{
    public void love(int a);
}
love1
love2
love3
love4

进程已结束,退出代码为 0

你可能感兴趣的:(Java)