zoukankan      html  css  js  c++  java
  • 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");
    });
  • 相关阅读:
    JAVA_SE基础——35.static修饰成员函数
    Mybatis环境搭建
    搭建Mybatis环境遇到的问题
    Windows10系统下,彻底删除卸载MySQL
    StringBuffer类append方法的用法和用途
    Listener监听器
    Filter过滤器
    JSTL
    EL表达式
    JSP
  • 原文地址:https://www.cnblogs.com/gejuncheng/p/12780592.html
Copyright © 2011-2022 走看看