• Lambda表达式用法


    1.简单例子
    // 1. 不需要参数,返回值为 5  
    () -> 5  
      
    // 2. 接收一个参数(数字类型),返回其2倍的值  
    x -> 2 * x  
      
    // 3. 接受2个参数(数字),并返回他们的差值  
    (x, y) -> x  y  
      
    // 4. 接收2个int型整数,返回他们的和  
    (int x, int y) -> x + y  
      
    // 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)  
    (String s) -> System.out.print(s)

    2.主要用于代替匿名内部类使用,使编程更简单
    //例1
    package com.wuxianjiezh.demo.lambda;
    
    @FunctionalInterface
    public interface WorkerInterface {
    
        public void doWork();
    }
    
    class WorkTest {
    
        public static void main(String[] args) {
            // 通过匿名内部类调用
            WorkerInterface work = new WorkerInterface() {
                @Override
                public void doWork() {
                    System.out.println("通过匿名内部类调用");
                }
            };
            work.doWork();
    
            // 通过 Lambda 表达式调用
            // Lambda 表达式实际上是一个对象。
            // 我们可以将 Lambda 表达式赋值给一个变量,就可像其它对象一样调用。
            work = ()-> System.out.println("通过 Lambda 表达式调用");
            work.doWork();
        }
    }

    运行结果:

    通过匿名内部类调用
    通过 Lambda 表达式调用
    //例2:线程初始化
    // Old way
    new Thread(new Runnable() {
        @Override
        public void run() {
            System.out.println("Hello world");
        }
    }).start();
    
    // New way
    new Thread(
        () -> System.out.println("Hello world")
    ).start();
    //例3:事件处理
    // Old way
    button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("Hello world");
        }
    });
    
    // New way
    button.addActionListener( (e) -> {
            System.out.println("Hello world");
    });
  • 相关阅读:
    K210识别水果模型
    一键开关机短路
    Arudino IDE添加STM32官方管理器stm32duino / Arduino_Core_STM32
    ESP32 Ble
    Blynk软件配置及Mixly编程教程
    Laravel安装及配置,完成基础的demo
    electron下载/打包慢?解决办法.....
    ESP32+PHP+MYSQL 搭建自己的物联网平台Demo
    PCA9536读写测试之MicroPython
    MSF实验2
  • 原文地址:https://www.cnblogs.com/gejuncheng/p/12780592.html
Copyright © 2020-2023  润新知