2024/3/30 21点的lambda表达式


package com.atguigu;

interface MyInterface{
    int sum(int i,int j);
}
interface Myhaha{
    int haha();
}
//检查注解,帮我们快速检查我们写的接口是否函数式接口
@FunctionalInterface
interface Myhehe{
    int hehe(int i);
}


//1.自己写实现类
class MyInetfaceImpl implements MyInterface{
    @Override
    public int sum(int i,int j){
        return i+j;
    }
}

public class Lambda {
    public static void main(String[] args) {
        //1.自己创建实现类对象
        MyInterface my=new MyInetfaceImpl();
        System.out.println(my.sum(2,3));

        //2、创建匿名实现类对象
        MyInterface myInterface = new MyInterface() {
            @Override
            public int sum(int i, int j) {
                return i+j;
            }
        };
        System.out.println(myInterface.sum(1,2));


        //3、lambda表达式:语法糖  参数列表  + 箭头 + 方法体
        MyInterface myInterface1=(x,y)->{return x*y;};
        System.out.println(myInterface1.sum(2,3));

        //参数位置最少情况
        Myhaha myhaha=()->{return 1;};

        System.out.println(myhaha.haha());

        Myhehe myhehe=y->{return y*y;};
        System.out.println(myhehe.hehe(4));

        Myhehe myhehe1=y->y+1;
        System.out.println(myhehe1.hehe(114514));

        //完整写法如上:
        //简化写法:
        //1)、参数类型可以不写,只写(参数名),参数变量名随意定义;
        //    参数表最少可以只有一个 (),或者只有一个参数名;
        //2、方法体如果只有一句话,{} 可以省略

        Myhehe  hehe3 = y -> y + 1;
        System.out.println(hehe3.hehe(7));
        //以上Lambda表达式简化了实例的创建。


        //总结:
        // 1、Lambda表达式: (参数表) -> {方法体}
        // 2、分辨出你的接口是否函数式接口。 函数式接口就可以lambda简
    }
}

重点:函数式编程
可能在开发crud场景用处不大,在大数据更改方法中重要

posted @   redzhengtao  阅读(4)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示