Spring:将可以为空的String值转换为Double

时间:2013-08-28 02:51:55

标签: java spring

我有一个字符串地图。我想从该映射中提取一个值,并将其作为Double属性传递给另一个对象。密钥可能会解析为null。这样做的最佳方式是什么?

例如,当值解析为null时失败:

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

我希望找到一个与这个java相同的漂亮的SpEL表达式:

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

1 个答案:

答案 0 :(得分:1)

使用三元运算符和static method call

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

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