阅读更多

62顶
8踩

编程语言

原创新闻 Java 7:Oracle 发布闭包的第一个版本

2010-05-31 18:14 by 资深编辑 wutao0603 评论(101) 有31477人浏览

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 : 

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.baptiste-wicht.com/2010/05/oracle-pushes-a-first-version-of-closures/

62
8
评论 共 101 条 请登录后发表评论
81 楼 searchNew 2010-06-02 14:00
方便是挺方便的,但是()太多啦,容易让人晕

没有C#中的和谐...
80 楼 myzhijie 2010-06-02 13:49
闭包很像JavaScript,很不错,但是用起来太灵活了,不好掌握 呵呵 不过我认为有了总比没有好,永远支持java!
79 楼 sxpyrgz 2010-06-02 13:02
什么时候再支持一下动态创建,动态编译,动态执行就好啦!
78 楼 bohr.qiu 2010-06-02 12:41
了解javascript的人一眼就看懂了,还算不错。
77 楼 tianlang0101 2010-06-02 10:36
第二眼看懂了。。 匿名函数。。
76 楼 zhouke_nwpu 2010-06-02 10:31
好好的增加什么闭包,Java已经变得很臃肿了!
75 楼 aninfeel 2010-06-02 10:15
adaikiss 写道
tsxm 写道
哎,又是这群家伙这吵,没有闭包一帮子人天天喊着要闭包,就Java没有了,好了,现在有了,我晕,又说好好的要什么闭包啊,你去死吧,不喜欢不用不就完了

悲剧的娃,'喊要闭包的一帮子人'不一定是'又说好好的要什么闭包啊'的人...

总是有一种人,把所有发帖的人当一种人看。
74 楼 quiii 2010-06-02 09:53
话说语法很新潮啊 - =  看第二遍看懂了
73 楼 drr 2010-06-02 09:28
比单独定义方法要好多了
72 楼 lzpzmkm 2010-06-02 08:52
感觉可读性不是很好啊
71 楼 rocwon 2010-06-02 08:45
这标题读起来怎么这么难受。。。
70 楼 zhudashao123 2010-06-02 04:03
真不如 C# 的lamda表达式清晰
69 楼 adaikiss 2010-06-01 22:34
tsxm 写道
哎,又是这群家伙这吵,没有闭包一帮子人天天喊着要闭包,就Java没有了,好了,现在有了,我晕,又说好好的要什么闭包啊,你去死吧,不喜欢不用不就完了

悲剧的娃,'喊要闭包的一帮子人'不一定是'又说好好的要什么闭包啊'的人...
68 楼 javagui 2010-06-01 21:17
LeeHomWong 写道
看着真叫人蛋疼。。

建议切了吧,就疼一下。
67 楼 LeeHomWong 2010-06-01 20:56
看着真叫人蛋疼。。
66 楼 yuchujin 2010-06-01 20:33
使用函数的那个闭包格式不错,应该能带来很多方便
65 楼 samfisher 2010-06-01 18:41
意思明白了,不过看不出有什么好处。不就是个匿名函数么,要是能够赋值给变量,作为函数参数传递还差不多。
64 楼 ray_linn 2010-06-01 18:36
语法相当丑陋啊,#? 莫非是C#的#?
63 楼 robot18ok 2010-06-01 18:12
yes,yes,我看懂了
62 楼 mossmouser 2010-06-01 18:10
哈哈,一眼看过去真不明白。
第二次才看明白了。
感觉比 .net 的那个明了多了

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Jive中的分頁處理

           google_ad_client = "pub-5666005562649995";google_ad_width = 468;google_ad_height = 60;google_ad_format = "468x60_as";google_ad_type = "text_im

  • oracle java 7_Oracle发布首个Java 7闭包版本

    虽然关于Java 7闭包一直波澜不断,开发者们也对Java是否真的需要引入闭包存在争议,但Oracle还是在两天前放出了Java 7闭包的第一个版本。我们可以在测试项目中看到Java编译器语法规则的演变。点此查看测试项目。下面...

  • 曾经的sun现在的oracle发布第一个java 7闭包版本

    闭包版本支持以下新特性: *函数类型的语法 *函数类型子类型 *全面支持拉姆达的1型和2的表达 *抛出类型的推理/在一个lambda返回类型 *拉姆达转换使用规则草案中指定 v0.1.5 *支持引用’this’(包括显性和隐性...

  • oracle java 7_Oracle提交Java 7 和Java 8规格

    即将来临的Java版本致力于减少冗余代码,增加多核性能,并且催生出动态脚本语言周二一名Oracle官员详细介绍了Oracle提交的版本7和版本8的Java标准版的技术规格。在考虑之中的技术由Java社区委员会(Java Community ...

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

    将未来赌在Java上的Oracle绝对不乎放置Java不管的,而不管处于任何目的,Oracle都会不遗余力的推动Java甚至是...而最近Oracle用行动证明了Java在其心目中的地位,Oracle于不久前发布了基于Java 7的闭包实现的第一个...

  • Oracle推出首个Java 7闭包版本

    【51CTO快译】虽然关于Java 7闭包一直波澜不断,开发者们也对Java是否真的需要引入闭包存在争议,但Oracle还是在两天前放出了Java 7闭包的第一个版本。我们可以在测试项目中看到Java编译器语法规则的演变。点此...

  • java闭包和lambda关系_浅谈Java 7的闭包与Lambda表达式之优劣

    前几天Oracle推出了Java 7官方的闭包与Lambda表达式的第一个实现,这基本上也是最终在正式版中的样式了。看了这个实现之后,我的第一感觉便是“丑”,当然不排除这是因为看惯了其他语言中实现的缘故。后来再仔细看了...

  • java lambda::_Java中的Lambda:深入分析

    java lambda:: 通过不收购Sun Microsystems的方式,Oracle可以从事严肃的工作来振兴许多人认为停滞的语言。 对许多人的要求很高的是能够传递独立于类的函数的能力,因此这些函数可用作其他函数或方法调用的参数。 ...

  • java 1.7 lambda,浅谈Java 7的闭包与Lambda表达式之优劣(1)

    前几天Oracle推出了Java 7官方的闭包与Lambda表达式的第一个实现,这基本上也是最终在正式版中的样式了。看了这个实现之后,我的第一感觉便是“丑”,当然不排除这是因为看惯了其他语言中实现的缘故。后来再仔细看了...

  • oracle里的java代码,oracle中编写java代码

    使用sql语句创建create or replace and compile java source named test_java_source aspackage test_java_source;public class Test{public void Test(){}//都是static的public static String sayHello(){return ...

  • java中闭包_Java 7中的闭包-语言的新时代开始了吗?

    java中闭包 Java 5:泛型 (Java 5: Generics) When Sun announced their plans to include the Generics in Java 5, a lot of the ...

  • 深入理解Java Lambda表达式,匿名函数,闭包

    第一个“x”是函数的参数,第二个是函数体。 自由与约束变量 在函数λx.x中,“x”被称为约束变量,因为它既在函数体中又是参数。 在λx.y中,“y”被称为自由变量,因为它从未事先声明过。 因为函数可以是其他函数...

  • Java版本历史

    Java语言自JDK1.0版本以来经历了许多次更新,也在基本程序库中增加了大量的类别和包。从J2SE 1.4开始,Java语言的变动由 Java Community Process(JCP)管理,JCP使用Java规范请求(Java Specification Requests,...

  • java lambda使用_Java8:Lambdas(二)学习怎样去使用lambda表达式

    原文链接作者:Ted Neward 译者:赵峰Java SE 8的发布很快就到了。伴随着它来的不仅仅是新的语言lambda表达式(同样被称为闭包或匿名方法)——伴随着一些语言特性支持——更重要的是API和library的增强将会使传统的...

  • java匿名包,java 匿名内部类 js 闭包

    最近在看js,看到closure(闭包)这一块儿的时候就想到了 java的匿名内部类 两者都有涉及到变量/参数的引用问题。先说java的匿名内部类,他的定义我就不多做说明了,可以参考地址...

  • java lambda::_书评:精通Lambda:多核世界中的Java编程

    从版本8开始,λ编程(lambda编程)终于在Java世界中引入。此功能将在很大程度上改变Java开发人员的编程方式以及针对样板代码的新“武器”。 Java 8通过引入新的Stream API,大部分已将函数式编程应用在Collections...

  • 地下迷宫探索 java_Java 8:探索可能性

    从嵌入式到云,使用Java 8实现。 涵盖Java SE 8和Java ME 8的Java 8可能是Java平台最... Java SE 8中的Compact Profiles允许开发人员仅使用平台的一部分,这是朝着Java SE和Java ME融合迈出的重要一步。 同时,对J...

  • 开始java的第一堂课~

    首先先安装上一个jdk ,此为java的开发环境,接下来安装一个编写java的工具, 在下面我会给大家介绍, 。桌面上至少有什么东西呢?首先必不可少的就是 一种编程工具(也叫做IDE)接下来就是一种查询单词的工具 ,...

  • 查询数据库后是返回ResultSet还是返回Collection?

    既然我们把数据库访问封装起来了,那么如果查询数据库返回的是一系列结果,比如我们从数据库中得到所有人的用户名,然后在Jsp页面显示出来。这里就有一个普遍疑问,我这个javabean是返回ResultSet到Jsp中还是Collection?我曾经有段时间图省事,直接返回ResultSet,然后在我的jsp页面中是大量的ResultSet遍历。这其实还是将数据层和显示层混淆在一起。在EJB CMP中,

  • JavaMail中文附件的处理方法

    JavaMail能很好的支持中文,但在测试过程中发现使用JavaMail发带有中文文件名的 附件时,文件名是乱码,经测试与查看源文件发现,是在JavaMail包里的一个写邮件 的方法没有考虑国际化因素,对双字节或多字节的字符没有考虑。即在 com.sun.mail.util.LineOutputStream调用 com.sun.mail.util.ASCIIUtility.getBytes(Str

Global site tag (gtag.js) - Google Analytics