2017-10-16 76 views
1

考虑这个功能,总结了一系列传递给函数值的结果...Java 7中内置了聚合类型或选择类型的函数吗?

int totalColumnWidth = 0; 
for(int columnIndex = 0; columnIndex < columnCount; columnIndex++) 
    totalColumnWidth += getWidthForColumn(columnIndex); 

它只是似乎很详细!在其他语言中,我可以在一行中做到这一点,这有额外的好处,允许我使totalColumnWidth只读。 Java 7中是否有这样的事情(我们正在为KitKat API 19进行Android开发)。

我的猜测是“不”,因为我理解Java 7不支持时需要的这种类型的功能的lambda(你必须在getWidthForColumn()呼叫通过),但我很乐意被误认为。

+1

你是对的。这很容易在** Java 8 **中创建,但不能在** Java 7 **中创建。 – Zabuza

+0

我不相信3行代码是冗长的(但我想你会向我们展示你的'真实'代码的简化版本)!无论如何,要回答你的问题,对不起,你需要Java 8的这 – Stormcloud

+0

或Kotlin,这是在Android上非常流行,出于这个原因等等,并运行在Java 6上。 –

回答

0

你是对的。 Java 7默认不支持这些功能。不过,可以使用Java 8轻松创建。

但是有一些库提供类似的方法或模拟lambda表达式。因此也参见SO: java streams in Java 7(如@Oleg所述)。