JAVA Lambda 表达式

2018-08-28  本文已影响0人  GrayZhang

Lambda基础语法

() -> {}     

// No parameters; result is void  无参数,无返回结果。

() -> 42              

// No parameters, expression body 无参数,返回表达体。

() -> null            

// No parameters, expression body 无参数,返回表达体null。

() -> { return 42; }   

// No parameters, block body with return  无参数,返回块体。

() -> { System.gc(); }

// No parameters, void block body    无参数,void块体。

() -> {              

  if (true) return 12;

  else {

    int result = 15;

    for (int i = 1; i < 10; i++)

      result *= i;

    return result;

  }

}   

// Complex block body with returns   具有返回的复杂块体

(int x) -> x+1             

// Single declared-type parameter   单个声明类型参数

(int x) -> { return x+1; } 

// Single declared-type parameter  单个声明类型参数,返回块体。

(x) -> x+1                 

// Single inferred-type parameter  单个推断类型参数

x -> x+1                  

// Parentheses optional for   单个类型参数,括号可省略。

 // single inferred-type parameter  单个推断类型参数

(String s) -> s.length()    

// Single declared-type parameter   单个声明类型参数

(Thread t) -> { t.start(); } 

// Single declared-type parameter  单个声明类型参数

s -> s.length()            

// Single inferred-type parameter  单个推断类型参数

t -> { t.start(); }         

// Single inferred-type parameter  单个推断类型参数

(int x, int y) -> x+y 

// Multiple declared-type parameters  多个声明类型参数

(x, y) -> x+y         

// Multiple inferred-type parameters   多个推断类型参数

(x, int y) -> x+y  

// Illegal: can't mix inferred and declared types   非法:不能混合推断和声明的类型

(x, final y) -> x+y 

// Illegal: no modifiers with inferred types   非法:没有带推断类型的修饰符

上一篇下一篇

猜你喜欢

热点阅读