Lambda表达式 --Java学习笔记

news/2024/4/28 22:58:50
  • Lambda表达式是jdk8开始新增的一种语法形式
  • 作用:用于简化匿名内部类的代码写法
  • 格式:

注意:Lambda表达式只能简化函数式接口的匿名内部类

函数式接口指有且仅有一个抽象方法的接口

将来我们见到的大部分函数式接口,上面都可能会有一个@Functionalinterface的注解,有该注解的接口就必定是函数式接口

代码演示Lambda表达式:

public class lambda_ {public static void main(String[] args) {
//        Animal dog = new Animal(){  //匿名内部类原来的写法
//            @Override
//            public void run() {
//                System.out.println("狗跑的飞快~~~");
//            }
//        };
//        dog.run();//注意:Lambda表达式并不能简化全部匿名内部类写法,只能简化函数式接口的匿名内部类
//        Animal dog = () ->{     //错误代码演示
//            System.out.println("狗跑的飞快~~~");
//        }
//        dog.run();//        flying f = new flying(){  //函数式接口匿名内部类
//            @Override
//            public void fly() {
//                System.out.println("鸟飞翔在乌云之中");
//            }
//        };
//        f.fly();flying f = () -> {  //简化,Lambda表达式写法System.out.println("鸟飞翔在乌云之中");};f.fly();}
}interface flying{void fly();
}abstract class Animal{public abstract void run();
}

Lambda表达式的省略写法(进一步简化Lambda表达式的写法)

  • 参数类型可以省略不写
  • 如果只有一个参数,参数类型可以省略,同时()也可以省略
  • 如果Lambda表达式中的方法体代码只有一行代码,可以省略大括号不写,同时要省略分号!此时,如果这行代码是return语句,也必须去掉return不写

例如:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/10589.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

桥接模式(Bridge Pattern)

原文地址:https://jaune162.blog/design-pattern/bridge-pattern.html 更多精彩文章请移步:https://jaune162.blog 更多专题系列文章请移步:https://books.jaune162.blog 序言 桥接模式是一种结构型设计模式,它旨在将抽象部分与实…

vue/uniapp路由history模式下宝塔空间链接打开新窗口显示404解决方法

vue/uniapp路由history模式下宝塔空间链接打开新窗口显示404,或者域名后带路径参数刷新就报404 解决方法: 宝塔中站点配置修改:【配置文件】中添加下面代码,具体如图: location / {try_files $uri $uri/ /index.html…

Vue2+ElementUI表单、Form组件的封装

Vue2ElementUI表单、Form组件的封装 :引言 在 Vue2 项目中,ElementUI 的 el-form 组件是常用的表单组件。它提供了丰富的功能和样式,可以满足各种需求。但是,在实际开发中,我们经常会遇到一些重复性的需求&#xff0c…

ChatGPT解决hmm...something seems to have gone wrong.

ChatGPT解决hmm…something seems to have gone wrong. 这里是官方社区的一种workaround办法。仅仅只是mark一下。 我这边遇到的现象是,ChatGPT 3.5是正常的,但是使用ChatGPT 4就会频繁的出现这样的输出。而且恶心的是,即使是这种输出&…

【React】Vite创建React+TS项目

前提条件 有node环境,且node版本>18.0.0 创建项目 npm create vitelatest1.起项目名 2.选择框架 3.选择语言 TypeScript SWC 是指 Vite 使用 SWC(Speedy Web Compiler)作为 TypeScript 的编译器。 SWC 是一个针对 JavaScript 和 Ty…

SpringBoot(依赖管理和自动配置)

文章目录 1.基本介绍1.springboot是什么?2.快速入门1.需求分析2.环境配置1.确认开发环境2.创建一个maven项目3.依赖配置 pom.xml4.文件目录5.MainApp.java (启动类,常规配置)6.HelloController.java (测试Controller&a…