美文网首页
Lamda表达式

Lamda表达式

作者: printf200 | 来源:发表于2020-10-14 22:13 被阅读0次

    为什么要使用Lamda表达式

    避免匿名内部类定义过多
    可以让代码看起来简洁
    去掉一些无意义代码,只留下核心的逻辑

    函数式接口的定义

    任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口。

    public interface Runnable {
        public abstract void run();
    }
    
    
    package wth.statics.lamda;
    
    
    /**
     * 推到Lambda表达式
     */
    public class LamdaTest {
    
        //3.静态内部类
        static class Like2 implements ILike{
    
            @Override
            public void lambda() {
                System.out.println("i like lambda2");
            }
        }
    
        public static void main(String[] args) {
            ILike iLike = new Like();
            iLike.lambda();
    
            iLike = new Like2();
            iLike.lambda();
    
    
            //4.局部内部类
            class Like3 implements ILike{
    
                @Override
                public void lambda() {
                    System.out.println("i like lambda3");
                }
            }
    
            iLike =  new Like3();
            iLike.lambda();
    
            //5.匿名内部类  -->  没有类的名称,必须借助接口或者父类
            iLike = new ILike() {
                @Override
                public void lambda() {
                    System.out.println("i like lambda4");
                }
            };
            iLike.lambda();
    
    
            //6.用lamdba简化
            iLike = () -> { System.out.println("i like lambda5");};
            iLike.lambda();
        }
    }
    
    
    //1.定义一个函数式接口
    interface ILike{
        void lambda();
    }
    
    //2.实现类
    class Like implements ILike{
    
        @Override
        public void lambda() {
            System.out.println("i like lambda");
        }
    }
    
    package wth.statics.lamda;
    
    public class LambdaTest {
    
    
    
        public static void main(String[] args) {
    
            ILove love = null;
    //        lambda表示简化
    //        ILove love= (int a)->{
    //            System.out.println("hello -->"+a);
    //        };
    
            //简化  去掉参数类型
    //        love = (a) ->{
    //            System.out.println("i love you"+a);
    //        };
    
            //简化2 去掉括号
    //        love = a ->{
    //            System.out.println("i love you"+a);
    //        };
    
    //        简化3 去掉花括号
            love = a -> System.out.println("i love you -->"+a);
            love.love(521);
    
            //总结
            /**
             * lambda 表达式只有一行代码的情况下才能简化成为一行,如果有多行那么就用代码块包裹
             * 前提是接口为函数式接口
             * 多个参数也可以去掉参数类型,要去掉就都去掉,必须加上括号
             */
        }
    
    
    
    }
    
    
    
    
    interface ILove{
    
        void love(int a);
    
    
    }
    //
    //class Love implements ILove{
    //
    //    @Override
    //    public void love(int a) {
    //        System.out.println("I love you -->"+a);
    //    }
    //}
    

    相关文章

      网友评论

          本文标题:Lamda表达式

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