【问题标题】:Create a DoubleBinding with a constant value创建具有常量值的 DoubleBinding
【发布时间】:2016-04-16 20:50:46
【问题描述】:

下面有没有更好的方法来初始化acc

// . . .
private DoubleBinding acc = new SimpleDoubleProperty(0).add(0);

public void append(ObservableDoubleValue delta){
    // . . .
    acc = acc.add(delta);
}

【问题讨论】:

  • 您是否有特定原因希望拥有DoubleBinding 而不是ObservableDoubleValue
  • 常量值是什么意思?无论如何,根据您的要求使用 ReadOnlyDoubleProperty 或 ReadOnlyDoubleWrapper。请参阅 javadocs。
  • @sillyfly 我只是更喜欢流畅的 API (acc.add(delta))(比 Bindings.add(acc,delta))。不确定它们是否具有相同的更新效率。
  • @UlukBiy 查看acc 的类型。无论如何它不能是set。我只需要一个DoubleBinding,其值将始终是编译时给定的数字。
  • 另一种方法是将DoubleBinding改为DoubleExpression

标签: java data-binding javafx javabeans


【解决方案1】:

您可以使用Bindings 类中的实用程序创建DoubleBinding (createDoubleBinding):

private DoubleBinding acc = Bindings.createDoubleBinding(() -> 0d);

参数是一个返回绑定值的函数。在这种情况下,假设 Java 8,该函数返回常量值 0。请注意,此 DoubleBinding 不会绑定到任何 Observable

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-20
    • 2016-08-24
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多