Java中Lambda表达式的简介说明

Java-教程王 Java教程 发布时间:2021-08-25 21:47:33 阅读数:13959 1
下文讲述Java中Lambda表达式的简介说明,如下所示:

Lambda表达式

Lambda表达式是Java8中的重要特性
Lambda允许将函数作为一个方法的参数(函数作为参数传递进方法中)
--------使用Lamda的优点---------
使用Lambda表达式可使代码变得更加简洁紧凑

Lambda表达式语法

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

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

Lambda表达式示例分享

//1.不需要参数,返回值为 5  
() -> 5  
  
//2.接收一个参数(数字类型),返回其3倍的值  
x -> 3 * x  
  
//3.接受2个参数(数字),并返回他们的差值  
(x, y) -> x – y  
  
//4.接收2个int型整数,返回两个数的积  
(int x, int y) -> x * y  
  
//5.接受一个string 对象,输出相关信息 
(String s) -> System.out.print(s)
例:
  java8 Lambda表达式测试
public class Java8Tester {
   public static void main(String args[]){
      Java8Tester tester = new Java8Tester();
        
      // 类型声明
      MathOperation addition = (int a, int b) -> a + b;
        
      // 不用类型声明
      MathOperation subtraction = (a, b) -> a - b;
        
      // 大括号中的返回语句
      MathOperation multiplication = (int a, int b) -> { return a * b; };
        
      // 没有大括号及返回语句
      MathOperation division = (int a, int b) -> a / b;
        
      System.out.println("8 + 7 = " + tester.operate(8,7, addition));
      System.out.println("8 - 7 = " + tester.operate(8,7, subtraction));
      System.out.println("8 x 7 = " + tester.operate(8,7, multiplication));
      System.out.println("100 / 20 = " + tester.operate(100,20, division));
        
      // 不用括号
      GreetingService test1 = message ->
      System.out.println("Hello " + message);
        
      // 用括号
      GreetingService test2 = (message) ->
      System.out.println("Hello " + message);
        
      test1.printInfo("java265.com");
      test2.printInfo("Java教程");
   }
    
   interface MathOperation {
      int operation(int a, int b);
   }
    
   interface GreetingService {
      void printInfo(String message);
   }
    
   private int operate(int a, int b, MathOperation mathOperation){
      return mathOperation.operation(a, b);
   }
}
运行以上脚本,将输出以下信息
$ javac Java8Tester.java 
$ java Java8Tester
8 + 7 = 15
8 - 7 = 1
8 x 7 = 56
100 / 20 = 2
Hello java265.com
Hello Java教程
Lambda表达式注意事项:
  1.Lambda表达式用于定义行内执行的方法类型接口,
     如,一个简单方法接口。在上面例子中,我们使用各种类型的Lambda表达式来定义MathOperation接口的方法
     又定义printInfo运行
  2.Lambda表达式免去了使用匿名方法的麻烦
    Java简单但是强大的函数化的编程能力

变量作用域

在Lambda表达式内部不能修改外部的局部变量
  
public class Java8Tester {
   final static String salutation = "Hello! ";
   
   public static void main(String args[]){
      testService test1 = message -> 
      System.out.println(salutation + message);
      test1.printInfo("Java265.com");
   }
    
   interface testService {
      void printInfo(String message);
   }
}
-----运行以上代码,将输出以下信息----
$ javac Java8Tester.java 
$ java Java8Tester
Hello! Java265.com
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202108/863.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者