JavaFX:在 SimpleIntegerProperty 中存储 null



>我有一个SimpleIntegerProperty应该能够存储null。但是,这是不可能的,正如 IntegerProperty 的 JavaDoc 中所写的那样:

注意:将此属性设置为null值或将此属性设置为"0.0"。请参阅setValue(java.lang.Number)

这也适用于其他属性,如LongPropertyFloatPropertyDoublePropertyBooleanProperty(但不适用于StringProperty,它允许null!为什么会这样呢?是否有解决方法可以在这些属性中存储null

> IntegerProperty.setValue(java.lang.Number) 方法在接口 WriteableIntegerValue 和 WriteableValue 中指定。WriteableIntegerValue 的 JavaDoc 指出:

注意:此方法应接受null而不抛出异常,而是设置"0"。

如果您正在查看 IntegerPropertyBase 类的代码,您还可以看到该值实际上存储为原始int(永远无法null(。这也在 SimpleIntegerProperty 的 JavaFX API 中指定:

此类提供包装int值的属性的完整实现。

解决方案:你可以通过使用SimpleObjectProperty<Integer>而不是SimpleIntegerProperty来简单地规避它,因为SimpleObjectProperty允许null

相关内容

  • 没有找到相关文章

最新更新