NumberExpressionBase本身就是一个ObservableValue,主要用处是和某些
解读FloatProperty
public abstract class FloatProperty
extends ReadOnlyFloatProperty
implements Property<java.lang.Number>, WritableFloatValue
解读Property
public interface Property<T> extends ReadOnlyProperty<T>, WritableValue<T>
Property提供的方法:
public abstract void bind(ObservableValue<? extends T> paramObservableValue);
public abstract void unbind();
public abstract boolean isBound();
public abstract void bindBidirectional(Property<T> paramProperty);
public abstract void unbindBidirectional(Property<T> paramProperty);
这些方法都是关于绑定的
请注意bindBidirectional和unbindBidirectional,它们的参数都是Property,这也是为什么Property要继承ReadOnlyProperty0, WritableValue接口的原因
解读ReadOnlyFloatProperty
一个ReadOnlyProperty再加上一个WritableValue就是一个Property(可读可写)
FloatExpression
public abstract class FloatExpression extends NumberExpressionBase implements ObservableFloatValue
为什么要实现ObservableFloatValue
请看FloatExpression中的一个方法的实现:
在继续查看Bindings.add方法:public FloatBinding add(long paramLong) { return (FloatBinding)Bindings.add(this, paramLong); }
add(ObservableNumberValue op1, int op2)