2013-08-28 94 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

相關問題