これでは、 はretVal = null
何も達成しません。null の値を指定します。その値を使用するコードはありません。次に、if-then を実行するか、else 部分を実行するかに応じて、別の値を指定します。
コメントを追加した場所に該当するコードでは、 の値を使用または変更できますretVal
。
void A(String pizza) {
String retVal = null;
... code in here could use it or give it a new value ...
if(StringUtils.isBlank(pizza) {
retVal = "blank"
} else {
retVal = computeString(pizza);
}
... additional code here might change it (and can use it's value) ...
}
retVal
この例では、メソッドが呼び出されるたびに値を指定する必要があります。あなたの if-then-else コードがそれを行います。値が与えられた後は、値を変更することはできません。
retVal
違いの 1 つは、値を指定する前に使用したかどうかをコンパイラが通知することです。当然のことながら、変数にはまだ値がないことがわかります。
void A(String pizza) {
final String retVal;
... code in here cannot use it or give it a value, too ...
if(StringUtils.isBlank(pizza) {
retVal = "blank"
} else {
retVal = computeString(pizza);
}
... additional code here cannot change it but can use it's value ...
}