写点什么

跟上 Java 闭包(Closure)的步伐

  • 2007 年 9 月 05 日
  • 本文字数:976 字

    阅读完需:约 3 分钟

Neal Gafter 最近在 JavaOne 以及 Jazoon '07 大会上做了以“Java 闭包:…及关于语言演进的思考”为主题的演讲。(演讲, mp3 音频, 演讲同步录音)。

演讲内容通俗易懂,相对完整的介绍了Java 闭包,今后目标和当前解决方案所存在的问题。整个演讲都以对话的方式为大家呈现。如果你一直避免阅读晦涩的技术报告,那么这个讲座将会使你快速了解Java 闭包的介绍和大致情况。

Neal Gafter 以 Mark Jason Dominus 在 Perl 概述中的话语作为开场:

在未来的三十年中,人们将会取笑那些发明没有闭包特性的语言的人,如同他们现在正取笑那些发明没有递归这种特性的语言的人是一个道理。

Neal Gafter 对闭包目标的描述是,它们使开发人员得以实现目前使用匿名内嵌类所实现的同样的功能,而不必那么痛苦;这样可以与已有的 API 进行整合,启用 control API、函数式以及聚合式的操作,而且会变得简单而又强大。

Gafter 希望通过启用 control APIs 来减少样板代码(boilerplate code),让文档来描述如何使用带有特别标注段落的 API,你可以在这些段落中加入自己的一些东西,此外他也希望减少开发人员经常剪切粘贴的现象,之所以出现这个现象的原因是 Java 没有精炼明确的方式来表达这种 API 形式。

关于如何使用匿名内部类来实现 Java SE 5 的 for-each 循环,Neal Gafter 指出了这种方式在具体实现中的缺陷:

所有的例子都表明,人们一般总是在掌握了问题的解决方式的时候,就会尝试去解决问题。很明显,你已经在脑海中有了问题的解决方法。但是在 Java 语言编程当中,这种困难是格外显著的,你不得不克服语言和编译器所带来的种种障碍,才能顺利的完成工作。

Neal Gafter 接着描述了闭包提议的语法和语义,并在示例中进行了使用,从具有锁控制的 api,到聚合操作,再到 Swing 的事件监听器均有涉及。他同样描述了通过为闭包提供语言支持而可能会形成的新 API。

对于这场讲座,听众的反响良好,他们倾向于认为Java 闭包特性很重要且不可或缺,当然也会有些人对此并不信服。Fabrizio Gianneschi也想参加这个讲座,他说“由于我本人反对闭包,所以我错过了Neal 之前的演讲,但我在Java Champion 的邮件列表上了解到他的想法,想通过讲座来确认一下闭包的用途”。

如果想了解更多信息,可以访问Java 编程语言闭包的网站,或者继续阅读InfoQ 站点关于闭包的相关主题。

查看英文原文: Catching up with Closures for Java

2007 年 9 月 05 日 03:252362
用户头像

发布了 74 篇内容, 共 10.3 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

Atlassian Team Playbook | OKR 好的不只是逼格

Atlassian

开发

猿灯塔:spring Boot Starter开发及源码刨析(一)

猿灯塔

Java 源码剖析

我终于弄懂了Python的装饰器(四)

BigYoung

Python 装饰器

架构师训练营总结 -5

River Tree

极客大学架构师训练营 个人总结

深入理解CAS:以AtomicInteger为例

itlemon

Atomic CAS AtomicInteger 自旋

小姐姐面试蚂蚁金服被虐经历,哪吒心疼.

通天哪吒

面试

Python 中的元类到底是什么?这篇恐怕是最清楚的了

BigYoung

Python python元类

想怎么玩,就怎么玩!搭载桌面级十代酷睿的神舟超级战神真香!

最新动态

一致性Hash算法

莫莫大人

极客大学架构师训练营

第五周作业

如何写一份合格的技术简历?

通天哪吒

面试

week5 总结

GAC·DU

我终于弄懂了Python的装饰器(二)

BigYoung

Python 装饰器

我终于弄懂了Python的装饰器(三)

BigYoung

Python 装饰器

创业使人成长系列 (1)- 从失败中学习

石云升

创业 个人成长 成长

一篇文章深入理解JDK7 HashMap

itlemon

hashmap map 源码解析 哈希冲突

可读代码编写炸鸡四(下篇) - 提炼注释的下一步是提炼注释

多选参数

代码质量 代码 代码组织 代码规范

编程能力 —— TicTacToe(井字棋)

wendraw

Java 大前端 编程能力

架构师训练营第五周学习总结

R20114

环信即时通讯云荣获《2020年度云通讯产品创新奖》

DT极客

出成绩了!Avaddon勒索病毒劣迹昭著,6月勒索病毒占比TOP 10榜上有名

360安全卫士

勒索病毒

再谈任务分解

松花皮蛋me

Java 精益开发

功利学习法:我为什么要这么功利?

非著名程序员

学习 程序员 程序人生 提升认知

Homework-我的一致性Hash算法

River Tree

Homework

week5 coding

GAC·DU

第五周学习总结

推荐 10个 NB的 IDEA 插件,开发效率至少提升一倍

程序员小富

Java 效率 IDEA

[架构师训练营] Week02 - 学习总结

谭方敏

一篇文章深入理解JDK8 HashMap

itlemon

源码 hashmap 线程安全

我终于弄懂了Python的装饰器(一)

BigYoung

Python 装饰器

Python中 *args 和 **kwargs的用法

BigYoung

Python *args **kwargs 缺省参数

跟上Java闭包(Closure)的步伐_Java_Geoffrey Wiseman_InfoQ精选文章