是什么区别set(String)
和setValue(String)
在SimpleStringProperty
类?
我知道set(String)
来源于StringPropertyBase
,但是这让我更加纳闷,为什么有另外的setValue(String)
?
是什么区别set(String)
和setValue(String)
在SimpleStringProperty
类?
我知道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有约束力的需求,因为他们可能会加入额外的逻辑。
用于对象/字符串的属性有集和的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的来源和看到。