use*_*698 8 java null primitive javafx
我有一个SimpleIntegerProperty
应该能够存储null
. 但是,这是不可能的,如IntegerProperty的 JavaDoc 中所写:
注意:将此属性设置或绑定到一个
null
值会将属性设置为“0.0”。见setValue(java.lang.Number)
。
这也适用于其他属性,如LongProperty
,FloatProperty
,DoubleProperty
,和BooleanProperty
(而不是StringProperty
,它允许null
!)。为什么会这样?是否有解决方法可以存储null
在这些属性中?
该IntegerProperty.setValue(java.lang.Number)
方法在接口WriteableIntegerValue和WriteableValue 中指定。WriteableIntegerValue的 JavaDoc指出:
注意:这个方法应该接受
null
而不抛出异常,而是设置“0”。
如果您正在查看IntegerPropertyBase
类的代码,您还可以看到该值实际上存储为原始类型int
(永远不能是null
)。这也在SimpleIntegerProperty的 JavaFX API 中指定:
此类提供包装
int
值的属性的完整实现。
解决方案:您可以简单地通过使用 aSimpleObjectProperty<Integer>
而不是a来规避它SimpleIntegerProperty
,因为 aSimpleObjectProperty
允许null
值
归档时间: |
|
查看次数: |
2130 次 |
最近记录: |