`

Oracle发布首个Java 7闭包版本

    博客分类:
  • Java
阅读更多

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

Oracle发布的最新版本有以下功能更新:

◆函数类型语法

◆函数类型的子类型

◆全面支持Lambda表达式

◆在lambda中对thrown/return类型的引用

在Oracle的更新说明中显示,这里所提到的函数类型在默认情况下不会启动,必须使用XDallowFunctionTypes来启用。以下为示例:

type1,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 

type2

  1. int i1 = #(){ return 3; }.(); //i1 = 3  
  2. Integer i2 = #(){ return 3; }.(); //i2 = 3  
  3. int i3 = #(int x){ return x + 1; }.(3); //i3 = 4  
  4. int i4 = #(Number x){ return x.intValue(); }.(new Float(3.0f)); //i4 = 3 

关于Java闭包

支持闭包的多数语言都将函数作为第一级对象,就是说这些函数可以存储到变量中、作为参数传递给其他函数,最重要的是能够被函数动态地创建和返回。对于Java是否应该引入闭包特性一直存在争议。

分享到:
评论

相关推荐

    Java闭包 Java闭包

    在2013年发布的 JavaSE8 中包含一个叫做 Lambda Project 的计划,在 JSR-335 草案 中有描述。 JSR-335 将闭包引入了 Java 。闭包在现在的很多流行的语言中都存在,例如 C++、C# 。闭包允许我 们创建函数指针,并把...

    详解Java的闭包

    主要介绍了详解Java的闭包,作者从Lambda和默认方法等重要特性深入讲解,极力推荐!需要的朋友可以参考下

    Java闭包练习

    Java8 Java7 练手 类似于SessionTemplate

    闭包搜索算法java编程

    It is important in distributed computer systems to identify those events (at identifiable points in time) that are concurrent, or not related to each other in time. A group of concurrent events may ...

    Java中闭包简单代码示例

    主要介绍了Java中闭包简单代码示例,具有一定借鉴价值,需要的朋友可以参考下

    离散数学-关系,集合,求自反闭包,对称闭包,传递闭包

    离散数学-关系,集合,求自反闭包,对称闭包,传递闭包 离散数学-关系,集合,求自反闭包,对称闭包,传递闭包 离散数学-关系,集合,求自反闭包,对称闭包,传递闭包 离散数学-关系,集合,求自反闭包,对称闭包...

    jdk 1.7u80 32_64位 windows

    JDK 7u80 发布,该版本修复了浏览器插件的严重的安全漏洞:CVE-2013-1493,Oracle 强烈建议使用 Java 浏览器插件用户升级。Oracle今天已经放出Java 7正式版的二进制安装包,这不是小升级,而是Java诞生以来最大的...

    传递闭包warshall算法java实现

    传递闭包的Warshall算法,java实现

    离散数学的各种闭包运算

    离散数学 闭包运算 传递闭包 自反闭包 对称闭包 warshell算法 普通算法 有界面 java编程

    数据库求属性集闭包&函数依赖闭包

    声明:以下仅个人观点,若有错误,敬请指正O(∩_∩)O~ 关键点 1) 将函数依赖用multimap,string> 存储,因为函数依赖可能...对每一个子集求其闭包,记为Ri+;然后求Ri+的所有子集记为(Ri+)j;最后做映射Rià(Ri+)j。

    关系闭包的计算

    实验目的:熟悉warshall算法,...实验内容:从键盘输入一个关系的关系矩阵,自动求出自反闭包、对称闭包和传递闭包。 计算传递闭包用Warshall算法。 #include<iostream> using namespace std; #define N 4 class jz

    计算NFA中ε闭包

    计算NFA中各个状态的闭包,从键盘上输入一个NFA的描述信息(输入格式自行定义),将 该NFA的描述信息保存到合适的数据结构中,然后计算出NFA中每个状态的ε_closure。

    内存泄露,闭包 内存泄露,闭包 内存泄露,闭包

    内存泄露,闭包 内存泄露,闭包 内存泄露,闭包

    C语言实现三种闭包算法(传递,自反,对称闭包)

    C语言实现三种闭包算法,能够实现传递,自反,对称闭包

    Java中的闭包与回调

    这些变量不是在这个代码块或者任何全局上下文中定义的,而是在定义代码块的环境中定义。“闭包”一词来源于以下两者的结合:要执行的代码块(由于自由变量的存在,相关变量引用没有释放)和为自由变量提供绑定的计算...

    Recursive:Java 8 的递归闭包

    递归Java 8 的递归闭包基于stackoverflow上的这个答案: : 包含一个简单的用法演示。 查看我的另一个函数式编程项目: : 博客条目: :

    闭包问题html

    闭包文件

    Swift之闭包ClosureDemo

    Swift之闭包ClosureDemo

    Javascript 闭包完整解释

    Javascript 闭包完整解释

    js闭包详细讲解

    js闭包的详细讲解

Global site tag (gtag.js) - Google Analytics