SimpleStringProperty
クラスのset(String)
とsetValue(String)
の違いは何ですか?SimpleStringProperty setValue()とsetValue()
私はset(String)
がStringPropertyBase
から派生していることを知っていますが、これによりさらに私にはさらにsetValue(String)
があるのでしょうか?
SimpleStringProperty
クラスのset(String)
とsetValue(String)
の違いは何ですか?SimpleStringProperty setValue()とsetValue()
私はset(String)
がStringPropertyBase
から派生していることを知っていますが、これによりさらに私にはさらにsetValue(String)
があるのでしょうか?
set/setValue
とget/getValue
方法ペアはBooleanProperty
又はDoubleProperty
ようなプリミティブ型のプロパティを持つオブジェクトのプロパティを整列させるために存在する:
BooleanProperty:
void set(boolean value)
void setValue(java.lang.Boolean v)
DoubleProperty:これらのプロパティクラスで
void set(double value)
void setValue(java.lang.Number v)
___Value
メソッドは直接メソッドはプリミティブ型で動作します。
コードを見ると、ロジックに少し違いがあるかもしれません。例えば、DoubleProperty#setValue(null)
は、DoubleProperty#set(0.0)
(これは結合によって必要とされた)に等しい。ですから、一般的には、set/getメソッドを使用し、setValue/getValueをバインディングの必要性のままにすることをお勧めします。
オブジェクト/文字列プロパティの場合、setメソッドとsetValueメソッドに違いはありません。
StringProperty.java:
@Override
public void setValue(String v) {
set(v);
}
StringPropertyBase.java:一般的な場合には
@Override
public void set(String newValue) {
if (isBound()) {
throw new java.lang.RuntimeException("A bound value cannot be set.");
}
if ((value == null)? newValue != null : !value.equals(newValue)) {
value = newValue;
markInvalid();
}
}
、あなたが開いたJavaFXからソースを開いて、それを見ることができます。
ありがとう、またあまりにも@tarrsalah、でも私はまだこれが何を意味するのか理解していないのですか? –
"違いは何ですか?" - 違いはありません。そのうちの1人は相手を呼びます。 –
なぜStringPropertyは 'setValue()'メソッドを追加しますか?意味論的な理由からのみ? –
私が見ることができるところから、1つは 'WritableValue'から来て、もう1つは' WritableObjectValue'から来ます。両方のインターフェースが存在する理由は謎です。デザインの欠陥かもしれません。 –