2017-10-16 10 views
1

関数に渡された値の範囲の結果を合計し、この関数を考えてみましょう...Java 7に組み込まれている集約型関数または選択型関数はありますか?

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

それはちょうどので、冗長です!他の言語では、私はそれを1行で行うことができます。これは、totalColumnWidthを読み取り専用にするという追加の利点があります。 Java 7にはこのようなことはありますか(KitKat API 19のAndroid開発を行っています)。

私はJava 7がこのタイプの機能に必要なラムダをサポートしていないことを理解しているので、私の推測は「いいえ」です(getWidthForColumn()コールを渡す必要がありますが間違いがあります)。

+1

あなたは正しいですか? ** Java 8 **では作成が簡単ですが、** Java 7 **では作成できません。 – Zabuza

+0

私は、3行のコードが冗長であるとは確信していません(しかし、あなたは私たちにあなたの '本当の'コードの簡略化されたバージョンを示していると思います)!とにかく、あなたの質問に答えるために、申し訳ありません - あなたのためにJava 8が必要です – Stormcloud

+0

またはKotlinは、他の中でその理由のためにAndroidでかなり人気があり、Java 6で動作します。 –

答えて

0

あなたは正しいですか? Java 7では、このような機能はデフォルトでサポートされていません。これは簡単にJava 8で作成することができます。

しかし、同様の方法を提供するライブラリやラムダをエミュレートするライブラリがあります。したがって、SO: java streams in Java 7(@Olegで述べたように)も参照してください。

関連する問題