草庐IT

Closures

全部标签

java - Groovy:什么是 java stream anyMatch 的模拟

以下操作的Groovy模拟是什么?list.stream().anyMatch(b->b==0); 最佳答案 您的意思是查找列表是否包含元素0?deflist=[0,1,2,3,4]defresult=list.any{it==0}printlnresult您可以快速在线试用demo 关于java-Groovy:什么是javastreamanyMatch的模拟,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

java - 与 Objective-C block 相比,Java 匿名类的局限性

在发现Objective-C中的block后,我才开始关注一阶函数和闭包。Java是另一种我听说过闭包(或没有闭包)以及匿名类如何在某种程度上弥补这一点的语言。在Objective-C中我绝对可以看到闭包作为block的优势,但是匿名Java类的局限性是什么?它们在多大程度上“有点”弥补了真正闭包的不足? 最佳答案 Java匿名类真的非常冗长。除了定义它们所需的大量样板之外,Java的一些设计决策意味着许多常见任务比其他语言要冗长得多。例如,将可变上值导入闭包是Java中的一个难题。基本上,Java不支持上值;相反,它们是通过将它们

java - 使用 functional-java 将闭包添加到 Java 生产项目有多安全?

我喜欢在Java中使用闭包。我读过它们可能会或可能不会进入Java7。但是一个名为functional-java的开源项目已经实现了包括闭包在内的功能特性。在企业生产应用程序中使用这样的库有多安全?目前有没有更好的方式给Java添加闭包? 最佳答案 闭包肯定不会进入Java7,因为缺乏对单一实现的共识。Seehere.FunctionalJava库已经过全面测试和积极开发。如果您浏览源代码,您会发现它只是简单的沼泽标准Java,并且没有太多可能出错的地方。我知道至少有一个在生产中使用它的关键任务企业应用程序。此应用程序拥有超过一百万

java - Java 8 中函数式接口(interface)的使用

这是来自::(doublecolon)operatorinJava8的后续问题其中Java允许您使用::运算符引用方法。是否可以提供一些我创建的自定义功能接口(interface)并将其与::运算符一起使用?以及如何去做? 最佳答案 “是否可以提供一些我创建的自定义功能接口(interface)并将其与::运算符一起使用?以及如何去做?”这是可能的,而且就像您想象的那样简单:只需使用一种方法创建一个接口(interface)。您甚至不需要@FunctionalInterface注释;此注释仅记录您的意图,并有助于在编译时检测错误,类

java - 类(java)和闭包(javascript)之间的区别?

我不明白闭包怎么比类更强大。看起来我可以使用类实现相同的闭包行为。任何帮助将不胜感激 最佳答案 闭包是穷人的对象/对象是穷人的闭包请参阅:closuresandobjects对于懒惰的人:ThevenerablemasterQcNawaswalkingwithhisstudent,Anton.Hopingtopromptthemasterintoadiscussion,Antonsaid"Master,Ihaveheardthatobjectsareaverygoodthing-isthistrue?"QcNalookedpityi

java - 实例方法引用和 Lambda 参数

我无法理解方法引用的语法,其中有两个参数a和b,引用是对a的方法在b上。比如我明白了Arrays.sort(personArray,comparators::compareByName);相当于Arrays.sort(personArray,(o1,o2)->comparators.compareByName(o1,o2));因为在这种情况下,lambda参数与方法调用参数(o1,o2)匹配。但是对于这个lambdastream.sorted((o1,o2)->o1.compareToIgnoreCase(o2));我的IDE告诉我这等同于:stream.sorted(String::

java - Java 7 中的闭包

这个问题在这里已经有了答案:What’sthecurrentstateofclosuresinJava?(6个答案)关闭9年前。那么Java7最终会实现闭包吗?最新消息是什么?

java - 如何将闭包从 groovy 导入到 java?

我正在尝试从groovy脚本中提取闭包。我将闭包定义为defprintMe={str->printlnstr}在我的groovy文件中,然后尝试通过从绑定(bind)中获取它来使用它,如下所示:GroovyScriptEnginegse=newGroovyScriptEngine(newString[]{"scripts"});Bindingbinding=newBinding();gse.run("test.groovy",binding);Closurecls=(Closure)binding.getVariable("printMe");cls.call("foo");但是当我运

java - Scala 闭包与 Java 内部类的比较 -> final VS var

我首先问了这个关于在Java中将final与匿名内部类一起使用的问题:Whydoweusefinalkeywordwithanonymousinnerclasses?我实际上正在阅读MartinOdersky的Scala书。Scala似乎简化了很多Java代码,但对于Scala闭包,我可以注意到一个显着差异。虽然在Java中我们用匿名内部类“模拟”闭包,捕获一个最终变量(它将被复制到堆上而不是堆栈上),但在Scala中我们似乎可以创建一个闭包来捕获一个val,也是一个var,因此在闭包调用中更新它!这就像我们可以在没有final关键字的情况下使用Java匿名内部类!我还没有读完这本书,

java - 静态方法使 Java 成为一种伪函数式语言?

我一直在考虑postMiskoHevery认为Java中的静态方法可测试性已死。我不想讨论可测试性问题,而是更多地讨论静态方法的概念。为什么人们如此讨厌它?的确,我们没有闭包(但我们有一个有点笨拙的匿名函数)、lambdas和作为一流对象的函数。在某种程度上,我认为静态方法可用于将函数模拟为一流对象。 最佳答案 函数式编程的一个特点是数据的不变性。static确实暗示您不需要表示状态的对象(实例),所以这不是一个糟糕的开始。但是,您在类级别上确实有状态,但是您可以将其设置为final。由于(静态)方法根本不是一等函数,您仍然需要像匿