質問
Hashmap <String,Integer
<!> gt;型の変数があります。
これでは、フラグ変数の値に応じて、整数値を操作する必要があります。このようにしました...
Hashmapvariable.put( somestring,
if (flag_variable) {
//manipulation code goes here
new Integer(manipulated value);
} else {
new Integer(non-manipulated value);
}
);
しかし、エラーが表示されます:
トークンの構文エラー、置き違い 構造。
Hashmapvariable.put呼び出しで。
別のエラーも表示されます
トークンの構文エラー<!> quot;)<!> quot ;、これを削除 トークン。
最後の<!> quot;); <!> quot;ライン。しかし、<!> quot;)<!> quot;は削除できません。 -putメソッド呼び出しの閉じ括弧。
これはわかりません。私はどのような間違いをしていますか?
解決
メソッド呼び出しにステートメントを配置することはできません。
ただし、1つのオプションは、次のようなInteger
を返すメソッドを作成することです。
private Integer getIntegerDependingOnFlag(boolean flag)
{
if (flag)
return new Integer(MANIPULATED_VALUE);
else
return new Integer(NON-MANIPULATED_VALUE);
}
その後、次のように電話をかけることができます:
hashmap.put(someString, getIntegerDependingOnFlag(flag));
他のヒント
new Integer(flag_variable ? manipulated value : non-manipulated value)
トリックを行います
編集: Java 5では、次のように書くこともできます
hashmap.put(someString, flag_variable ? manipulated value : non-manipulated value)
オートボクシングのため。
これはスキームではないため、ステートメントが値に評価されない場合。他の誰かが言ったように、tri-if-thingを使用するか(名前が何らかの理由で私をエスケープします)、関数を作成する必要があります。
所属していません StackOverflow