2013-08-28 64 views
1

我有一个字符串映射表。我想从该地图中拉出一个值并将其作为Double属性传递给另一个对象。密钥可能会解析为null。做这个的最好方式是什么?Spring:将可空字符串值转换为双精度值

<bean id="someBean" class="mystuff.Example"> 
    <property name="someDoubleProp"> 
     <bean class="java.lang.Double"> 
      <constructor-arg value="#{jobParameters['something']}" /> 
     </bean> 
    </property> 
</bean> 

我希望找一些好的规划环境地政司表达式是一样的这个Java:

myMap.get("something") == null ? null : new Double(myMap.get("something")) 

回答

1

使用

举个例子,当值解析为空失败三元运算符和static method call

#{jobParameters['something']==null?(double)0:T(java.lang.Double).valueOf(jobParameters['something'])} 

要小心,因为如果jobParameters [ '东西']并不代表有效的双倍你会得到一个NumberFormatException
您可以考虑使用像NumberUtils.toDouble()这样的函数,它不会抛出异常,但会设置一个默认值。

+1

我将(双)0更改为null,但除此之外它的作品,谢谢。 – kmosley