zoukankan      html  css  js  c++  java
  • lamda表达式的由来

    Lambda表达式(参考狂神说)

    在这里插入图片描述

    推导lambda

    package test;
    
    /*
    推到lambda
     */
    
    import static java.lang.System.*;
    
    public class testlamda1 {
    
        //3. 静态内部类
        static class Like2 extends Like implements Ilike {
            @Override
            public void lambda() {
                out.println("i like javaee");
            }
    
            public static void main(String[] args) {
                Ilike like = new Like();
                like.lambda();
                like = new Like2();
                like.lambda();
    
    
                //4.局部内部类
                class Like3 extends Like implements Ilike {
                    @Override
                    public void lambda() {
                        out.println("i like spring ");
                    }
                }
                like = new Like3();
                like.lambda();
    
    //            5。匿名内部类(没有类的名称,必须借助接口或父类)
                like = new Ilike(){
                    @Override
                    public void lambda() {
                        out.println("i like maven");
                    }
                };
                like.lambda();
    
    //            6. lambda简化
                like = ()->{
                    out.println("i like javase ");
                };
                like.lambda();
    
    
            }
        }
    
    
        //1. 定义一个函数式接口
        interface Ilike {
            void lambda();
        }
    
        // 2. 实现类
        static class Like implements Ilike {
            @Override
            public void lambda() {
                out.println("i like java");
            }
        }
    }
    

    在这里插入图片描述

    例1

    package test;
    
    public class testlambda2 {
        public static void main(String[] args) {
            ILove love = (int a)->{
                System.out.println("i love number"+a);
            };
            love.love(14);
    
        }
    }
    
    
    interface ILove{
        void love(int a);
    }
    

    简化

    package test;
    
    public class testlambda2 {
        public static void main(String[] args) {
    //        简化1
            ILove love = null;
            love = a -> {
                System.out.println("i love "+a);
            };
            love.love(5);
    //        简化2
            love = a -> System.out.println("i love aa"+a);
            love.love(520);
        }
    }
    
    interface ILove{
        void love(int a);
    }


    --------------------------------------------------------------------------------------------
    package com.dubbo.consumer.testlamda;

    //函数式接口
    interface Lambda{
    void one();
    }
    //阶段1 通常的实现类
    class Stage1 implements Lambda {
    @Override
    public void one() {
    System.out.println("Stage1 普通类实现接口");
    }
    }
    public class TestLambda{
    static class Stage2 implements Lambda { //阶段2 静态内部类
    @Override
    public void one() {
    System.out.println("Stage2 静态内部类实现接口");
    }
    }
    public static void main(String[] args) {
    // Lambda lambda = new Stage1();
    // lambda.one();//查看控制台正常输出
    // lambda = new Stage2();
    // lambda.one();//查看控制台正常输出
    class Stage3 implements Lambda {//阶段3 局部内部类(位于方法中)
    @Override
    public void one() {
    System.out.println("Stage3 局部内部类实现接口");
    }
    }
    // lambda = new Stage3();
    // lambda.one();//查看控制台正常输出
    //
    // lambda = new Lambda() { //阶段4 匿名内部类,在方法中 必须通过接口或者父类才能实例化
    // @Override
    // public void one() {
    // System.out.println(("Stage4 匿名内部类实现接口"));
    // }
    // };
    // lambda.one();//查看控制台正常输出

    //阶段5 lambda表达式出现了

    Lambda lambda = new Stage1();

    lambda = () -> {
    System.out.println("lambda来了");
    };
    lambda.one();//查看控制台正常输出
    //另外特例的 函数式接口的参数只有一个时()可以省略,方法体只有一行时{}可以省略
    lambda = () -> System.out.println("匿名内部类实现接口");
    lambda.one();//查看控制台正常输出
    }
    }

    注意:

    • 代码有多行不能去掉花括号(简化2)== 只能由一行代码
    • 必须是函数式接口(接口里只有一个方法)
  • 相关阅读:
    MySQL 和 Oracle 在 MyBatis 使用中的区别
    nodeppt:网页版 PPT
    在 sql 语句出现 warning 之后,立刻执行 `show warnings;` 就可以看到 warning 提示信息
    MySQL 列,可选择的数据类型(通过sql命令查看:`help create table;`)
    create table 推荐规则
    MySQL 中的变量:系统变量(包括:会话变量、全局变量)、用户变量(包括:局部变量、用户变量)
    MySQL 有用的查询语句
    MySQL 遇到错误集锦
    VARCHAR(N)类型,utf8编码,则N最大值为多少,n表示什么?
    MySQL 的严格模式
  • 原文地址:https://www.cnblogs.com/qq3245792286/p/15474289.html
Copyright © 2011-2022 走看看