我在 Joel On Software 上阅读了一篇关于使用高阶函数通过使用 map 和 reduce 来大大简化代码的想法。他提到这在 Java 中很难做到。文章:http ://www.joelonsoftware.com/items/2006/08/01.html
下面文章中的示例循环遍历一个数组,并使用作为参数传递给数组中每个元素的函数 fn:
function map(fn, a)
{
for (i = 0; i < a.length; i++)
{
a[i] = fn(a[i]);
}
}
这将在实践中类似于以下调用:
map( function(x){return x*2;}, a );
map( alert, a );
理想情况下,我想编写一个映射函数来处理数组或任何类型的集合(如果可能)。
我一直在互联网上四处寻找,我很难找到有关该主题的资源。首先,java中可以使用匿名函数吗?这有可能以另一种方式做到吗?它会在 Java 的未来版本中提供吗?如果可能的话,我该怎么做?
我想如果这在 Java 中是不可能的,那么人们使用某种“模式”/技术来实现相同的效果,因为我认为匿名函数是软件世界中一个非常强大的工具。我能找到的唯一类似的问题是:Java generics - implementation high order functions like map这对我来说绝对没有意义。