如果在hashmap.put中调用构造

Shi*_*n A 0 java hashmap

我有一个Hashmap类型的变量<String,Integer>.

在这种情况下,Integer值可能需要进行一些操作,具体取决于flag变量的值.我这样做了......

Hashmapvariable.put( somestring,
    if (flag_variable) {
     //manipulation code goes here
     new Integer(manipulated value);
    } else {
     new Integer(non-manipulated value);
    }
);
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

令牌上的语法错误,错误的结构.

在Hashmapvariable.put调用.

我还得到另一个错误

令牌")"上的语法错误,删除此令牌.

在最后");" 线.但是我不能删除")" - 它是put方法调用的右括号.

我不懂.我做错了什么?

kro*_*old 7

 new Integer(flag_variable ? manipulated value : non-manipulated value)
Run Code Online (Sandbox Code Playgroud)

诀窍

编辑:在Java 5上,我想你也可以写

hashmap.put(someString, flag_variable ? manipulated value : non-manipulated value)
Run Code Online (Sandbox Code Playgroud)

由于自动拳击.