论坛首页 Java企业应用论坛

JAVA 需要引入闭包吗

浏览 38526 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-06-11  
function getX(){  
    var x;  
    callAMethod(function(){  
         x = 5*10;  
    });  
    return x;  
}  这就是闭包吗 怎么和java的匿名内部类是的呀??
0 请登录后投票
   发表时间:2009-06-11  
herryhcm 写道
要闭包!!!


为什么一定要闭包?
闭包 有什么优势(相对于对象)?
我觉得java 引入闭包 得不偿失。
0 请登录后投票
   发表时间:2009-06-11  
night_stalker 写道
















。。。
能给个解释不。。。
0 请登录后投票
   发表时间:2009-06-11  
闭包

一可以消灭魔法词汇: "addListener" "new xxxListener" "Runnable" "run"

二可以更好的进行抽象。图中这几种情况用对象不是不可以,但是很冗长。代码越长,维护就越痛苦。没闭包的时候很多算法抽象如 filter、fold、map 都很难运用。

闭包降低了复杂性而不是增加了复杂性,没闭包你得用模式、AOP 等更复杂的手段去解决一些问题。

三是内部类不能访问上下文,根本没法和闭包比,写点复杂的东西就知道了。


坏处也不少:培训班老师得学习一下了。


闭包语义上当然是和对象等价,但是这个就是纯纯粹粹的语法问题。能做和能容易的做是不同的。
0 请登录后投票
   发表时间:2009-06-11  
现在我有个在区域的过滤器,如果java支持closure,那可是相当的简洁,可惜现在写了一堆callback在那里。
0 请登录后投票
   发表时间:2009-06-11  
night_stalker 写道
闭包

一可以消灭魔法词汇: "addListener" "new xxxListener" "Runnable" "run"

二可以更好的进行抽象。图中这几种情况用对象不是不可以,但是很冗长。代码越长,维护就越痛苦。没闭包的时候很多算法抽象如 filter、fold、map 都很难运用。

闭包降低了复杂性而不是增加了复杂性,没闭包你得用模式、AOP 等更复杂的手段去解决一些问题。

三是内部类不能访问上下文,根本没法和闭包比,写点复杂的东西就知道了。


坏处也不少:培训班老师得学习一下了。


闭包语义上当然是和对象等价,但是这个就是纯纯粹粹的语法问题。能做和能容易的做是不同的。


谢谢给出的 解释!!!
不过内部类是可以访问上下文的
内部类可以访问外部类的属性。。
1 请登录后投票
   发表时间:2009-06-11  
visitor 写道

不过内部类是可以访问上下文的
内部类可以访问外部类的属性。。


嗯,我说的不准确,应该改成“内部类没法访问局部变量”...
0 请登录后投票
   发表时间:2009-06-11  
night_stalker 写道
visitor 写道

不过内部类是可以访问上下文的
内部类可以访问外部类的属性。。


嗯,我说的不准确,应该改成“内部类没法访问局部变量”...


举个例子。。。
什么局部变量
0 请登录后投票
   发表时间:2009-06-11  
mathgl 写道
现在我有个在区域的过滤器,如果java支持closure,那可是相当的简洁,可惜现在写了一堆callback在那里。


能用代码说明一下吗
伪代码 也可以
我也想看看 闭包的 威力在哪。
0 请登录后投票
   发表时间:2009-06-11  
visitor 写道
night_stalker 写道
visitor 写道

不过内部类是可以访问上下文的
内部类可以访问外部类的属性。。


嗯,我说的不准确,应该改成“内部类没法访问局部变量”...


举个例子。。。
什么局部变量


局部变量必需是final的才可以被闭包访问,参见TIJ中的内部类一章
1 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics