欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > Lambda表达式的使用及执行顺序

Lambda表达式的使用及执行顺序

2025/3/12 12:30:56 来源:https://blog.csdn.net/qq_54655539/article/details/145612472  浏览:    关键词:Lambda表达式的使用及执行顺序

对于项目中使用了lambda表达式的代码,它的执行顺序有时候记不住,写篇文章记录一下。

一、基础数据准备

定义学生类

public class Student {private String name;private Integer age;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}
}

自定义一个函数式接口ElementVerify

@FunctionalInterface
public interface ElementVerify<T> {String verify(T t);
}

二、测试执行顺序

Demo类

public class Demo {private static String execute(Student stu, ElementVerify<Student> elementVerify) {System.out.println("----第一步,开始执行execute----");String result = elementVerify.verify(stu);System.out.println(result);System.out.println("---第四步,执行execute完成----");return "success";}public static void main(String[] args) {Student student = new Student();student.setName("UMR");student.setAge(26);System.out.println("---即将执行execute---");execute(student, ((Student stu) -> {System.out.println("----第二步,校验年龄(start)----");if (stu.getAge() > 15) {}return "----第三步,校验年龄(end)----";}));}}

        main方法里调用的execute写了一大坨,其实只是创建一个匿名内部类,实现了ElementVerify的方法,execute方法中必须手动去调用ElementVerify接口的verify方法,才会去执行传入的匿名内部类的实现方法。

匿名内部类的实现方法,如果不去主动调用,即便传入的时候实现了该方法,也不会去执行。

比如,我屏蔽execute方法中对verify的调用,其他保持不变。

public class Demo {private static String execute(Student stu, ElementVerify<Student> elementVerify) {System.out.println("----第一步,开始执行execute----");//屏蔽该方法
//        String result = elementVerify.verify(stu);
//        System.out.println(result);System.out.println("---第四步,执行execute完成----");return "success";}public static void main(String[] args) {Student student = new Student();student.setName("UMR");student.setAge(26);System.out.println("---即将执行execute---");execute(student, ((Student stu) -> {System.out.println("----第二步,校验年龄(start)----");if (stu.getAge() > 15) {}return "----第三步,校验年龄(end)----";}));}}

执行main方法

可以看见,屏蔽了之后,即使传入了匿名内部类,也没有去执行它里面的实现方法。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词