gpt4 book ai didi

lambdaj 闭包中使用的 Java 机制

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:54:29 26 4
gpt4 key购买 nike

Lamdbaj允许在Java语言中定义闭包,可以找到各种例子 here

我的问题是关于使用中的底层 Java 机制,例如,要定义 println 闭包,使用以下代码:

Closure println = closure(); 
{ of(System.out).println(var(String.class)); }

此闭包随后可以通过以下方式执行:

println.apply("foobar");

我很好奇 Java 中的什么机制允许对 of(...).println(...) 的调用与 println 相关联实例本身。

当然,可以阅读 lambdaj 源代码,但如果有人有的话,我希望能得到稍微更高层次的解释。我的反射(reflection)技巧包括一些内省(introspection)和动态执行方法。

最佳答案

我是 Mario Fusco,我是 lambdaj 库的主要开发人员。

首先,我想澄清一点:lambdaj 无意取代任何函数式语言。正如我上周在苏黎世 Jug 的演讲中所说,如果你有机会使用 Scala,那就去吧,不要回头。在这里你可以找到我的演讲简历,其中明确指出:

http://ctpjava.blogspot.com/2009/10/lambdaj-new-trends-in-java.html

我也是一个快乐的 Scala 开发者。但有时你不得不使用 Java 进行开发(根据我的经验,在现实世界中,大约 80% 的时间你无法选择必须使用哪种语言编写代码),在这种情况下,一些 lambdaj 功能可能是有帮助(或者我希望如此)。我只是想给 Java 带来一些完全缺失的功能特性。当然,结果并不完全令人满意,主要是受Java自身的限制。

至于内部 lambdaj 机制,是的,它使用 ThreadLocal 来实现该结果。如果您对 lambdaj 有其他问题、好奇心或什至更好的建议和建设性的批评,也许您可​​能有兴趣在此处注册到 lambdaj 邮件列表:

http://groups.google.com/group/lambdaj

再见马里奥

关于lambdaj 闭包中使用的 Java 机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1615950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com