Java8 教程

Java8 Lambda 省略格式

上面章节介绍了 Lambda 表达式的标准语法,下面将介绍怎样在 Lambda 标准格式的基础上,使用省略写法来简化 Lambda 表达式。

类型省略

小括号内参数的类型可以省略,例如:

package com.hxstrive.jdk8.lambda_omit;

import java.util.Arrays;

/**
* 省略类型
* @author hxstrive.com
*/
public class LambdaOmit01 {

   public static void main(String[] args) {
       String[] strs = {
               "hello",
               "administrator",
               "java"
       };

       // 省略前
       Arrays.sort(strs, (String o1, String o2) -> {
           return o1.length() - o2.length();
       });

       // 省略后
       Arrays.sort(strs, (o1, o2) -> {
           return o1.length() - o2.length();
       });
   }

}

省略小括号

如果小括号内有且仅有一个参数,则小括号可以省略。例如:

package com.hxstrive.jdk8.lambda_omit;

import java.util.function.Predicate;

/**
* 省略小括号
* @author hxstrive.com
*/
public class LambdaOmit02 {

   public static void main(String[] args) {
       // 省略前
       greaterThan50((e) -> {
           return e > 50;
       }, 58);

       // 省略后
       greaterThan50(e -> {
           return e > 50;
       }, 58);
   }

   private static void greaterThan50(Predicate<Integer> predicate, int val) {
       if(predicate.test(val)) {
           System.out.println("大于50");
       } else {
           System.out.println("小于等于50");
       }
   }

}

省略大括号

如果大括号内有且仅有一个语句,则可以同时省略大括号、return 关键字及语句分号。例如:

package com.hxstrive.jdk8.lambda_omit;

import java.util.function.Predicate;

/**
* 省略大括号
* @author hxstrive.com
*/
public class LambdaOmit03 {

   public static void main(String[] args) {
       // 省略前
       greaterThan50((e) -> {
           return e > 50;
       }, 58);

       // 省略后
       greaterThan50(e ->  e > 50, 58);
   }

   private static void greaterThan50(Predicate<Integer> predicate, int val) {
       if(predicate.test(val)) {
           System.out.println("大于50");
       } else {
           System.out.println("小于等于50");
       }
   }

}
说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号