java支持闭包_Java 7最新版-支持闭包

将未来赌在Java上的Oracle绝对不乎放置Java不管的,而不管处于任何目的,Oracle都会不遗余力的推动Java甚至是JavaEE以及各种规范的发展,从这点来说对于Java爱好者来说是十分有利的。因为不管是谁掌管Java,只要是可以推动Java的发展,都是一件令人愉快的事情。而最近Oracle用行动证明了Java在其心目中的地位,Oracle于不久前发布了基于Java 7的闭包实现的第一个版本,这也是Java在演化过程中首次正事声明了对闭包的支持功能,同时在针对闭包的语法也有所改变,并在Java编译器方面也针对闭包做了调整。

Java 7对闭包的支持主要包括:

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

因为闭包特性是首次加入,目前还没有作为默认的Java 7特性出现,想要尝试这些特性的朋友可以在JVM参数中增加 -XDallowFunctionTypes 参数来启动闭包特性

关于闭包的两个例子:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值