Java lamdba表达式

Java Lambda表达式

函数式接口

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

public interface Runnable{
	public abstract void run();
}

推导方法:

定义一个函数式接口 --> 实现类 --> 静态内部类 --> 局部内部类 --> 匿名内部类(没有类的名称, 必须借助接口或者父类) --> 用lamda简化

package com.Li.moveLine;

public class Dome04 {
    //静态内部类
    static class Like2 implements ILike{
        @Override
        public void lamda() {
            System.out.println("xihuan2");
        }
    }
    public static void main(String[] args) {
        ILike like = new Like();
        like.lamda();

        like = new Like2();
        like.lamda();
        //局部内部类(就是在main中实现)
        class Like3 implements ILike{
            @Override
            public void lamda() {
                System.out.println("xihuan3");
            }
        }
        like = new Like3();
        like.lamda();

        // 匿名内部类(直接调用接口)
        like = new ILike() {
            @Override
            public void lamda() {
                System.out.println("xihuan4");
            }
        };
        like.lamda();

        like = ()-> System.out.println("xihuan5");
        like.lamda();
    }
}
// 创建接口
interface ILike{
    void lamda();
}

// 实现类
class Like implements ILike{
    @Override
    public void lamda() {
        System.out.println("xihuan");
    }
}

总结

lambda 表达式只能又一行代码的情况下才能简化成一行, 如果有多行, 马那么就用代码块包裹

前提是接口为函数式接口,且只能有一个函数式

多个参数也可以去掉参数类型, 要去掉都去掉, 必须加上括号

like = (int a,int b){
        sout...;
	sout...;}
posted @ 2023-02-04 21:19  G02c5  阅读(13)  评论(0编辑  收藏  举报