闭包版本支持以下新特性:
*函数类型的语法
*函数类型子类型
*全面支持拉姆达的1型和2的表达
*抛出类型的推理/在一个lambda返回类型
*拉姆达转换使用规则草案中指定 v0.1.5
*支持引用’this’(包括显性和隐性)
*翻译使用方法处理
函数类型在默认情况下不会启动,必须使用XDallowFunctionTypes来启用。
type 1 lambda表达式示例:
1. int i1 = #()(3).(); //i1 = 3
2. Integer i2 = #()(3).(); //i2 = 3
3. int i3 = #(int x)( x + 1 ).(3); //i3 = 4
4. int i4 = #(Number x)(x.intValue()).(new Float(3.0f)); //i4 = 3
type 2 :
# 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
更多新闻:http://www.52blogger.com/archives/category/news
*函数类型的语法
*函数类型子类型
*全面支持拉姆达的1型和2的表达
*抛出类型的推理/在一个lambda返回类型
*拉姆达转换使用规则草案中指定 v0.1.5
*支持引用’this’(包括显性和隐性)
*翻译使用方法处理
函数类型在默认情况下不会启动,必须使用XDallowFunctionTypes来启用。
type 1 lambda表达式示例:
1. int i1 = #()(3).(); //i1 = 3
2. Integer i2 = #()(3).(); //i2 = 3
3. int i3 = #(int x)( x + 1 ).(3); //i3 = 4
4. int i4 = #(Number x)(x.intValue()).(new Float(3.0f)); //i4 = 3
type 2 :
# 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
更多新闻:http://www.52blogger.com/archives/category/news