0
有一种将ObjectProperty<Integer>
转换为IntegerProperty
的方法。那就是:如何将ObjectProperty <String>转换为JavaFX中的StringProperty?
为什么没有到ObjectProperty<String>
转换为StringProperty
类似的方法?如何转换呢?
有一种将ObjectProperty<Integer>
转换为IntegerProperty
的方法。那就是:如何将ObjectProperty <String>转换为JavaFX中的StringProperty?
为什么没有到ObjectProperty<String>
转换为StringProperty
类似的方法?如何转换呢?
Looking at the source for integerProperty
,它所做的只是一个双向绑定(并在完成中解除绑定)。
你可以复制的内容integerProperty
呢,并将其修改为使用StringProperty
:
public static StringProperty makeStringProperty(final Property<String> property) {
Objects.requireNonNull(property, "Property cannot be null");
return new StringPropertyBase() {
{
bindBidirectional(property);
}
@Override
public Object getBean() {
return null; // Virtual property, no bean
}
@Override
public String getName() {
return property.getName();
}
@Override
protected void finalize() throws Throwable {
try {
unbindBidirectional(property);
} finally {
super.finalize();
}
}
};
}
我有点此处修改它,所以它不使用内部包。
为什么你需要这样做? 'StringProperty'和'ObjectProperty'都实现'Property ',它通常足够具体。 'IntegerProperty'等问题是他们实现了'Property '而不是'Property ','Property '等。另见http://stackoverflow.com/questions/34620552/why-does-longproperty-implement -propertynumber-but-not-propertylong and https://bugs.openjdk.java.net/browse/JDK-8125218 –
Itai