当前位置: 首页 > 知识库问答 >
问题:

如何使一个复杂的物体成为可观察的

宋昕
2023-03-14
class ComplexObject /* extends SomeObservableClass */ {
    public int getValue1 { complex calculations... };
    public int getValue2 { ... };

    public void setNewValue1(int newValue) { ... }
}

class ComplexRenderer extends Canvas implements InvalidationListener {
    private ComplexObject complexObject;

    public void setComplexObject(ComplexObject complexObject) {
        this.complexObject = complexObject;
        complexObject.addListener(this);
    }

    public void draw() { ... }
}

我在JavaFX中看到的一切似乎都是面向属性的,但在这里似乎不是正确的选择。

共有1个答案

华善
2023-03-14

也许您可以查看接口ObjectPropertyBase 和类ObjectPropertyBase SimpleObjectProperty ,它们实现了Observable

然而,您必须定义对象何时更改和监听逻辑。

很抱歉这只是一个工作的痕迹,但我希望它可能有用。

 类似资料:
  • 根据我的理解,是一个可以随时间变化的值(可以订阅,订阅者可以接收更新的结果)。这似乎与的目的完全相同。 何时使用与?使用比使用有好处吗?或者反之亦然?

  • 问题内容: 我正在尝试将项目设置为表视图,但是setitems方法需要一个可观察的列表,而我的模型中却有一个可观察的集合.FXCollections实用程序类没有给定可观察的集合来创建可观察的列表的方法。类强制转换异常(按预期)。 目前,我正在使用这种代码 而且我有一些问题: 在表中进行编辑是否会按预期更新基础集? 这是这样做的“正确”方法吗 简而言之,我需要样式指南或最佳做法,以便在可观察集和可

  • 我试图用制作一个简单的马里奥游戏。因此,我需要一个,用于杀死(Mario中的主要敌人)。经过一番研究之后,我研究了 我还创建了一个 我相信(不确定我是否完全理解了这一点)这使得成为,并且我需要多个,这意味着我将有多个的 所以我有两个问题:我对有什么不了解,以及如何让多个()在死亡时调用

  • 我有一个组件订阅服务中的一个可观察对象。该方法反过来订阅另一个服务中的可观察对象。我想将一个数组从最后一个服务传递回第一个服务,然后第一个服务将该数组传递回组件。更具体地说,该组件调用其本地服务,然后调用一个数据服务,该数据服务通过http客户端访问我的数据库。http客户端正在工作,数据服务将数组返回给本地服务。本地服务接收数组,但我不知道如何将该数组作为可观察对象传递回组件。以下是简短的代码块

  • 我对Observables和RxJs是新手,我想对回报进行调整。如果第一个选择器返回某个值,我希望第二个选择器可以观察到。但是如果第一个选择器没有返回那个特定的值,我想返回false,而不是(false)。我已经走了这么远,但这返回了一个可观察的结果

  • 问题是 我有一个活动,它定期从API获取数据并显示收到的数据。API 使用 OAuth,因此我会收到一个临时访问令牌,该令牌在一段时间(1 小时)后过期。如果应用尝试使用过期的令牌获取数据,则显然请求将失败。在我的应用的早期迭代中,我对网络请求使用 AsyncTasks,基本上只是执行了一个新的异步任务,该任务将在调用从服务器获取数据的主异步任务之前获取新的访问令牌。这工作得很好,因为主要的Asy