質問

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を使用するか(名前が何らかの理由で私をエスケープします)、関数を作成する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top