• Java Lambda表达式


    Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。

    Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。

    使用 Lambda 表达式可以使代码变的更加简洁紧凑。

     

    语法

    lambda 表达式的语法格式如下:

    (parameters) -> expression
    或
    (parameters) ->{ statements; }

    特征

    以下是lambda表达式的重要特征:

    • 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
    • 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
    • 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
    • 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

    示例

     1 package com.java.demo;
     2 
     3 public class LambdaDemo {
     4     public static void main(String[] args) {
     5         print(new MyMath() {
     6             @Override
     7             public int sum(int x, int y) {
     8                 return x+y;
     9             }
    10         },100,200);
    11 
    12         print((int x,int y) -> {
    13             return x+y;
    14         },100,200);
    15     }
    16 
    17     public static void print(MyMath m,int x,int y){
    18         int num = m.sum(x,y);
    19         System.out.println(num);
    20     }
    21 
    22     static interface MyMath{
    23         int sum(int x,int y);
    24     }
    25 }

    基本使用步骤:

    1. 定义一个仅含抽象方法的函数式接口
    2. 声明一个该接口的变量来实现对抽象方法的lambda表达式实现形式(此步骤可以压缩到下一步中)
    3. 使用一个调用该接口类型的变量的方法,传入已经第二步中的接口变量(也可以直接传入lambda表达式)

    个人目前的理解是,lambda表达式只能操作那些只有一个抽象类的接口,可以把它理解为一个匿名内部类,实际上lambda表达式的效果与匿名内部类的效果等同。

  • 相关阅读:
    机械设计手册
    如何在PADS的封装中做非金属化孔
    【Protle99SE】PCB中各层的含义【小汇】
    Stm32时钟分析
    头文件为什么要加#ifndef #define #endif
    android adb常用指令
    安装 SQLManagementStudio_x86_CHS(SQL Server Management Studio) 老提示重启的解决办法
    SQL 2008下载地址以及全新安装详细过程
    【原创】pads2007 Layout 电气连接性检查过孔显示错误
    十款最具发展前景机器人
  • 原文地址:https://www.cnblogs.com/misaki-workshop/p/13462120.html
Copyright © 2020-2023  润新知