私はItem[] items
を持っていますが、それにはいくつかの基本的な統計が含まれています。 ラムダ式を使用して変数に合計を累積できますか?
public float getAttackDamage() {
float bonus = 0;
for(int i = 0 ; i < items.length; i++){
if(items[i] != null){
bonus += items[i].getAttackDamage();
}
}
return baseAttackDamage + attackDamageScaling * level + bonus;
}
上記のコード
はI現在、私の文字項目をループとは、そのgetAttackDamage()
リターン結果にどのように適用されるかです。
ラムダ式を代わりに使用する方法はありますか?私は以下を試した:
public float getAttackDamage() {
float bonus = 0;
Arrays.stream(items).forEach(i -> bonus += i.getAttackDamage());
return baseAttackDamage + attackDamageScaling * level + bonus;
}
しかし、それは動作しませんでした(コンパイラエラー)。 これは可能ですか?
ここでコンパイルされています...あなたはJava 8を使用していますか? – luanjot
@luanjotそれはコンパイルされません、 'bonus'は事実上最終的ではありません。 – Tunaki
申し訳ありませんが、私はこれらのビットを修正しなければなりませんでした。ちょうどラムダビットが正しいことを確認しました。ごめんなさい。 – luanjot