SimpleStringProperty set() vs. setValue()
SimpleStringProperty
类之间的区别是什么?set(String)
setValue(String)
我知道这是从StringPropertyBase
派生的,但这让我更加想知道,为什么还有?set(String)
setValue(String)
SimpleStringProperty
类之间的区别是什么?set(String)
setValue(String)
我知道这是从StringPropertyBase
派生的,但这让我更加想知道,为什么还有?set(String)
setValue(String)
set/setValue
和方法对的存在是为了将 Object 属性与基元类型属性(如 或 )对齐:get/getValue
BooleanProperty
DoubleProperty
布尔属性:
void set(boolean value)
void setValue(java.lang.Boolean v)
双属性:
void set(double value)
void setValue(java.lang.Number v)
在这些属性类中,方法处理与类型对象相对应的,而直接方法处理基元类型。___Value
在代码中查找,您可能会发现逻辑上有一些不同。例如,等于(这是绑定所要求的)。因此,一般来说,我建议使用 set/get 方法,并将 setValue/getValue 留给绑定需求,因为它们可能包含其他逻辑。DoubleProperty#setValue(null)
DoubleProperty#set(0.0)
对于 Object/String 属性,set 和 setValue 方法之间没有区别。
字符串属性.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();
}
}
在常见情况下,您可以从open javafx开源并查看。