美文网首页
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