阅读更多

62顶
8踩

编程语言

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

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

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 条 请登录后发表评论
21 楼 zhishuren 2010-06-01 08:02
好好的JAVA位什么要加闭包? JAVA就该有JAVA特色。
20 楼 seavers 2010-06-01 07:59
闭包,也是基于类型安全的,不知是好事,还是坏事~~

List pojos = Arrays.asList(1,2,3).map(#(int id){return getById(id);});
19 楼 mathfox 2010-06-01 07:47
我outman了,这语法我不会,看不明白啊,有时间学习一下。
18 楼 NumbCoder 2010-06-01 02:39
strongkill 写道
不关注语法优化了多少..多少.只关注性能提高了多少...

java 的性能已经很好了,什么时候能抛弃陈旧繁琐的东西所最重要的。
17 楼 robot18ok 2010-05-31 23:47
我只要自定义的jre,桌面应用
16 楼 Seamanm 2010-05-31 23:46
内牛满面。。。
15 楼 swordice 2010-05-31 22:35
不错,期待很久了
14 楼 cyberblue 2010-05-31 22:35
闭包

#(int x) lambda = #(int x)(x+1);
13 楼 smilerain 2010-05-31 22:27
关注性能提高.和jdk变小
12 楼 shinezhou 2010-05-31 22:22
话说这东西有人用吗。

11 楼 ghawk 2010-05-31 22:19
语法倒是很直观,不过相当罗嗦。
10 楼 徐风子 2010-05-31 21:55
内牛满面呀,毕包终于出来了!
9 楼 icanfly 2010-05-31 21:34
闭包搞成这样。。看起来真恶心!
8 楼 panshunchang 2010-05-31 21:28
什么叫闭包啊?
7 楼 abruzzi 2010-05-31 21:09
看着几个例子,都是匿名函数,没看到闭包。
6 楼 fyland 2010-05-31 20:51
希望JAVA把性能再提高一点!
5 楼 aninfeel 2010-05-31 20:19
希望不是在折腾吧。
4 楼 chandler 2010-05-31 19:50
  有时候代码并不是为了省事,而是为了易读,易维护。这是两码事。
3 楼 tedeyang 2010-05-31 19:17
java搞这么魔幻干什么呢
2 楼 strongkill 2010-05-31 18:49
不关注语法优化了多少..多少.只关注性能提高了多少...

发表评论

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

相关推荐

  • 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