美文网首页
lambda表达式

lambda表达式

作者: 秋秋_6403 | 来源:发表于2020-05-10 20:04 被阅读0次
介绍 示例

函数式接口,接口中只能有1个方法。如果有多个方法,使用lambda表达式会报错。

public class TestLambda1 {

    //静态内部类
    static class Like2 implements Ilike{
        @Override
        public void lambda() {
            System.out.println("I like lambda2");
        }
    }

    public static void main(String[] args) {

        //局部内部类
        class Like3 implements Ilike{
            @Override
            public void lambda() {
                System.out.println("I like lambda3");
            }
        }


        Ilike like = new Like();
        like.lambda();
        like = new Like2();
        like.lambda();
        like = new Like3();
        like.lambda();
        //匿名内部类,没有类的名称,必须借助接口或者父类
        like = new Ilike() {
            @Override
            public void lambda() {
                System.out.println("I like lambda4");
            }
        };
        like.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");
    }
}

lambda表达式只有一行代码的情况下可以去掉花括号,如果有多行,必须用代码块。

参数可以去掉参数类型,多个参数事要去掉就都去掉。

1个参数时可以去掉圆括号,多个参数时必须用括号括起来。

public class TestLambda2 {


    public static void main(String[] args) {
        Ilove love;

//        love = (int a) -> {
//            System.out.println("I love me " + a);
//        };
        //简化参数类型
//        love = (a) -> {
//            System.out.println("I love me " + a);
//        };
        //简化圆括号
//        love = a -> {
//            System.out.println("I love me " + a);
//        };
        //简化花括号
//        love = a -> System.out.println("I love me " + a);


        love = (a, b) -> {
            System.out.println(
                    "I love me " + a
            );
            System.out.println(
                    "I love me " + a
            );
        };
        love.love(666, "haha");

    }


}

interface Ilove {
    void love(int a, String b);
}

学习视频:狂神说java https://www.bilibili.com/video/BV1V4411p7EF?p=10

相关文章

网友评论

      本文标题:lambda表达式

      本文链接:https://www.haomeiwen.com/subject/ooqsnhtx.html