以下のシナリオがあります。条件に基づいて最終変数を宣言し、Javaのラムダで使用する
ラムダ式の中で変数を使用したいと思います。しかし、この変数は、条件に基づいて一度の価値(最終)を持つことになります。
final String constraintsAmount;
if(constraint.isPresent()) {
constraintsAmount = constraint.getValue();
}
これ以降、forEach + lambda式を使用してリストを反復処理します。 これで、この繰り返し内でこのconstraintsAmountフィールドを使用する必要があります。
しかし、 "constraintsAmountが初期化されていない可能性があります"と表示されます。
どうすればこの問題を回避できますか。
注:この変数をインスタンス変数として宣言する必要はありません。この変数を宣言して初期化する必要はありません。 2)それは最終的なものなので、それを初期化して、ifチェックの中で再利用します。そこで、何が問題になっているのかを確認したかったのです。あなたが他のブロックを必要とするコンパイラの観点から
質問 - 'constraint'がないとどうなりますか? –
@BoristheSpiderはい私は制約が存在しない変数が初期化されないので、なぜエラーを出しているのか理解しています。では、これを解決するための回避策は何でしょうか。 – tushR
@tushR私たちはそれを伝えることはできません。 'constraint'が存在しないときにあなたが何をするのかを決める必要があります。あなたはそれを私たちに語ったことはありません。 –