我有以下情形。根據條件聲明最終變量並在java中使用lambda表達式
我想在lambda表達式中使用一個變量。但是這個變量將有一個基於條件的一次性值(最終)。
final String constraintsAmount;
if(constraint.isPresent()) {
constraintsAmount = constraint.getValue();
}
在此之後,我開始迭代使用forEach + lambda表達式的列表。 現在我必須在這個迭代中使用這個constraintsAmount字段。
但它表示「constraintsAmount可能未被初始化」。
我該如何解決這個問題。
注意: 1)我不想聲明這個變量作爲一個實例變量,我當然不想在迭代中聲明和初始化這個變量。 2)由於它是最後我不能初始化它,然後在if檢查中重新使用它。所以想要檢查什麼是工作。
問題 - 當約束不存在時會發生什麼? –
@BoristheSpider是的,我明白爲什麼它給錯誤,因爲如果約束不存在變量不會被初始化。那麼解決這個問題的工作是什麼? – tushR
@tushR我們不能告訴你。當'constraint'不存在時,你必須決定你想要發生什麼。你沒有告訴我們。 –