技术开发 频道

Java 7:Oracle 发布闭包的第一个版本

  【IT168 文档】2010年5月23号,Java度过了它的第15个生日!

  近日,Oracle又发布了一个令人振奋的消息,发布了实现闭包的第一个版本,在测试案例中,Java compiler syntax 发生了变化。你可以在此查看测试案例

  支持以下新特性:

  Function types syntax

  Function types subtyping

  Full support for lambda expression of type 1 and 2

  Inference of thrown types/return type in a lambda

  Lambda conversion using rules specified in v0.1.5 draft

  Support references to ‘this’ (both explicit and implicit)

  Translation using method handles

  函数类型在默认情况下不会启动,必须使用XDallowFunctionTypes来启用。

  type 1 lambda表达式示例:

int i1 = #()(3).(); //i1 = 3  
Integer i2 = #()(3).(); //i2 = 3  
int i3 = #(int x)( x + 1 ).(3); //i3 = 4  
int i4 = #(Number x)(x.intValue()).(new Float(3.0f)); //i4 = 3  

  type 2 :

  Java代码 

int i1 = #(){ return 3; }.(); //i1 = 3  
Integer i2 = #(){ return 3; }.(); //i2 = 3  
int i3 = #(int x){ return x + 1; }.(3); //i3 = 4  
int i4 = #(Number x){ return x.intValue(); }.(new Float(3.0f)); //i4 = 3  
0
相关文章