其他分享
首页 > 其他分享> > Lambda表达式

Lambda表达式

作者:互联网

函数式接口

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

/*
推导lamda表达式
 */
public  class D1 {

    public static void main(String[] args) {
        user user = new user();
        user.lamb();
    }
}

//1定义一个函数式接口
interface Use{
    void lamb();
}
//2实现类
class user implements Use{
    @Override
    public void lamb() {
        System.out.println("我最棒");
    }
}

还可以怎么简化?

静态内部类

可以将实现类放到内部

public  class D1 {
    //3实现类
    static class user1 implements Use{
        @Override
        public void lamb1() {
            System.out.println("我最棒");
        }
    }

    public static void main(String[] args) {
        user1 user1 = new user1();
        user1.lamb1();
    }

    }


//1定义一个函数式接口
interface Use{
    void lamb1();
}

局部内部类

public  class D1 {

    public static void main(String[] args) {
        //3实现类 局部内部类
         class user2 implements Use{
            @Override
            public void lamb2() {
                System.out.println("我最棒");
            }
        }
        user2 user2 = new user2();
         user2.lamb2();


    }

    }

//1定义一个函数式接口
interface Use{
    void lamb2();
}

匿名内部类

public  class D1 {

    public static void main(String[] args) {
    //匿名内部类
       Use use = new Use() {
            @Override
            public void lamb3() {
                System.out.println("我最棒");
            }
        };
       use.lamb3();


    }

    }
//1定义一个函数式接口
interface Use{
    void lamb3();
}

用lambda简化

interface Use{
    void lamb4();
}

public  class D1 {
    public static void main(String[] args) {
    /*
    Use use = new Use() {
            @Override
            public void lamb4() {
                System.out.println("我最棒");
            }
        };
    */
        Use use = () -> {
            System.out.println("我最棒");
        };
        use.lamb4();
    }
}

Use use = () -> { System.out.println("我最棒"); };

这种代码的实现是只保留了从lamb4后的()开始保留

也就是下面这些

() { System.out.println("我最棒"); }

和前面的 Use use

Use use=() { System.out.println("我最棒"); }

但需要在()和{之间加一个->

这时一句话需要在末尾加;

Use use = () -> { System.out.println("我最棒"); };

 2021-03-13 22:27:33

标签:Use,void,System,最棒,Lambda,public,表达式,out
来源: https://www.cnblogs.com/z-hou/p/14530729.html