首页 > 编程语言 >Java lamdba表达式

Java lamdba表达式

时间:2023-02-04 21:22:06浏览次数:46  
标签:lamda Java like void lamdba ILike 接口 public 表达式

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...;}

标签:lamda,Java,like,void,lamdba,ILike,接口,public,表达式
From: https://www.cnblogs.com/1618lll/p/17092427.html

相关文章

  • 正则表达式
    正则表达式正则表达式:对特殊的输入格式进行验证;应用matches方法匹配1、\d:匹配一位数字例:Scannerinput=newScanner(System.in);   System.out.println("请输......
  • java基础:流程控制
    顺序结构Java的执行过程就是顺序结构,除非说明,不然都是一句接一句执行。选择结构if选择结构if(布尔表达式1){//布尔表达式1为true执行}elseif(布尔表达式2){......
  • 基础知识-java程序运行机制
    编译型-compile(直译)操作系统适用,c/c++解释型-网页(对速度要求不高)Java(双重属性)、Javascriptjava运行机制源程序(.java文件)——java编译器——字节码(.class文件)——类装......
  • Java多线程并发04—线程池的合理使用
    为什么使用线程池?线程池做的工作主要是控制运行的线程的数量。线程池的种类Java中常用的线程池主要有四种:newCachedThreadPool、newFixedThreadPool、newScheduledThreadPo......
  • Java多线程并发05-锁说明
    根据锁的各种特性,可将锁分为以下几类:乐观锁/悲观锁独享锁(互斥锁)/共享锁(读写锁)可重入锁公平锁/非公平锁分段锁偏向锁/轻量级锁/重量级锁自旋锁乐观锁/悲观锁乐观锁与悲观锁并......
  • python基础:文件操作、函数、名称空间、函数名称的多种用法、闭包函数、装饰器、递归函
    目录一、文件操作1、概念介绍2、两种操作方式3、文件读写模式4、文件的操作模式5、文件的诸多方法6、文件内的光标移动7、文件内容修改二、函数1、概念2、语法结构3、函数......
  • 【JavaScript】2_数据类型
    1、数值数值(Number)在JS中所有的整数和浮点数都是Number类型JS中的数值并不是无限大的,当数值超过一定范围后会显示近似值Infinity是一个特殊的数值表示无穷所以在JS中进行......
  • python基础:算法简介之二分法(需要写的出来)、三元表达式、各种生成式、匿名函数、常见内
    目录一、算法简介之二分法(需要写的出来)简介什么是算法二分法二、三元表达式什么是三元表本质?三元表达式语法结构三、各种生成式列表生成式字典生成式集合生成式元组生成器(......
  • java基础:java基础语法
    注释单行注释:对某一行进行注释,使用“/注释内容/”标识多行注释:可以书写多行,使用“/*注释内容*//”表示文档注释:这个内容对IDEA是有意义的,/**注释内容*/publicc......
  • JAVA基础--泛型
    JAVA基础--泛型一、作用泛化、参数化类型。所操作的数据类型被指定为一个参数;类型安全。编译时验证类型,如果编译时正常,运行时就不会出现ClassCastException(类型转换异......