虽然关于Java 7闭包一直波澜不断,开发者们也对Java是否真的需要引入闭包存在争议,但Oracle还是在两天前放出了Java 7闭包的第一个版本。我们可以在测试项目中看到Java编译器语法规则的演变。
Oracle发布的最新版本有以下功能更新:
◆函数类型语法
◆函数类型的子类型
◆全面支持Lambda表达式
◆在lambda中对thrown/return类型的引用
在Oracle的更新说明中显示,这里所提到的函数类型在默认情况下不会启动,必须使用XDallowFunctionTypes来启用。以下为示例:
type1,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 type2 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 |
关于Java闭包
支持闭包的多数语言都将函数作为第一级对象,就是说这些函数可以存储到变量中、作为参数传递给其他函数,最重要的是能够被函数动态地创建和返回。对于Java是否应该引入闭包特性一直存在争议,在Devoxx 2009上已基本确定在Java 7中对闭包的引入。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
JavaFX发力:Oracle能否力揽狂局
早在Oracle收购Sun的计划后,就宣布它会支持JavaFX多媒体软件开发平台,如今JavaFX在Oracle的带领下,在面对表现平平的质疑声时,能否力揽狂局呢?
-
Google、IBM、Oracle意图分羹云计算大数据市场
少数公共云计算服务供应商(如Google、IBM、微软以及Oracle)正从Amazon网络服务(AWS)中得到启示,并已涉足“大数据”分析领域和多方面的开源项目Hadoop/MapReduce。
-
云计算时代:大数据泡沫正无限膨胀
在当今企业中80%的数据都是非结构化数据,这些数据每年都按指数增长60%。大数据将挑战企业的存储架构、数据中心的基础设施等,也会引发数据仓库、数据挖掘、商业智能、云计算等应用的连锁反应。
-
Oracle将发布批量补丁 影响数百款产品
据国外媒体报道,Oracle将发布76个补丁,受影响其数百款产品。本次发布的补丁中,其中56个是针对Oracle的数据库产品,Oracle建议用户尽快安装这些补丁,否则将存被攻击的危险。