我在Scala中使用JAXB進行編組和解組浮點(以及整數)的問題。如何將浮點作爲Scala選項[Float]而不是具有JAXB的Java Float取消/組織?
在我的Scala應用程序我有變量是這樣的:
val taxPaid: Option[Float]
如果taxPaid等於0.0f
,這意味着沒有納稅;如果taxPaid等於None
,那麼這意味着我們不知道支付了多少稅。
像Option[Float]
這樣的變量可以很好地映射到一個SQL float NULL
列(我使用Squeryl),同樣它也可以在JSON或XML中很好地表達。我的問題是JAXB - 得到JAXB的工作,我的POJO表示內我都用簡單的Java Floats
,就像這樣:
@XmlElement(nillable = true, `type` = classOf[Object])
@BeanProperty
var taxPaid: Float = _
然後,因爲一個Java Float
不能採取null
的值時, 0.0f
的值被視爲null
的(不正確且有損)代理。
所以我的問題是:是否有一種方法,我可以馬歇爾和unmarshall XML浮動到Scala Option[Float]
,從而保持null
的意義?
Java'Float'可以取值爲null,原始'float'不能。 –
謝謝Ingo - 您的評論指出了我在這一方面的正確方向(見下文) –