null
を格納できるSimpleIntegerProperty
があります。しかし、これはIntegerPropertyのJavadocの書かれたように、不可能である。JavaFX:SimpleIntegerPropertyにnullを格納する
注:
null
値にこのプロパティを設定または結合「0.0」にプロパティを設定します。setValue(java.lang.Number)
を参照してください。
これはまた、このようなLongProperty
、FloatProperty
、DoubleProperty
のような他の特性に適用され、BooleanProperty
(ではないStringProperty
に、null
を可能にします!)。これはなぜですか?これらのプロパティにnull
を格納するための回避策はありますか?
プリミティブラッパータイプ、 'IntegerProperty'、' DoubleProperty'などは、あることを可能とすることを回避することができますまさしくそれを意図しています:プリミティブ型のための観測可能なラッパー。だから 'IntegerProperty'は' int'をラップすることを意図しています。もちろん 'null'値をとることはできません。便宜上、 'IntegerProperty'は' Property 'を実装しているので、' setValue(Number) 'メソッドを継承します。しかし、値を 'null 'に設定するのに使われることは意図されていません(そして、あなたが観察したように、値をデフォルトの' 0'に設定するために文書化されています)。 'null'を取ることができるobservableを望むなら、' ObjectProperty 'を使います。 –