lambda表达式学习

2023-12-13 10:27:50

让你秒懂的Lambda表达式超级详细讲解-CSDN博客

lambda表达式就是对匿名方法的进一步简化?

1.前提

所以你写lambda的时候就不会纠结重写哪一个方法了,避免了歧义,重写唯一的那一个抽象方法。

2.格式

()->{? ????????????????}

3.省略规则

4.注意事项

5.匿名内部类和lambda表达式区别

总体来说lambda表达式可以在单个抽象方法的接口情况下作为一种简单的替代,对于复杂的情况还得用匿名内部类

public interface Inter{
    void show();
    //void show1();
}

abstract class Animal {
    public abstract void method();
}
class Student {
    public void study(){
        System.out.println("爱生活,爱java");
    }
}

public class LambdaDemo{
    public static void main(String[] args) {
        /*//匿名内部类
        useInter(new Inter() {
            @Override
            public void show() {
                System.out.println("接口");
            }
        });

        useAnimal(new Animal() {
            @Override
            public void method() {
                System.out.println("抽象类");
            }
        });

        useStudent(new Student(){
            @Override
            public void study(){
                System.out.println("具体类");
            }
        });*/

        //Lambda
        useInter(() -> System.out.println("接口"));
        //useAnimal(() -> System.out.println("抽象类"));//不可以
        //useStudent(() -> System.out.println("具体类"));//不可以
    }
    private static void useStudent(Student s){
        s.study();
    }
    private static void useAnimal(Animal a){
        a.method();
    }
    private static void useInter(Inter i){
        i.show();
    }
}

public interface Inter{
    void show();
    void show1();
}


public class LambdaDemo{
    public static void main(String[] args) {
        useInter(new Inter() {
            @Override
            public void show() {
                System.out.println("show");//👈只打印这一个show
            }
            @Override
            public void show1() {
                System.out.println("show");
            }
        });
    }

    private static void useInter(Inter i){
        i.show();
    }
}

6.函数式接口

文章来源:https://blog.csdn.net/m0_50973548/article/details/134903415
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。