Java 观察者/可观察者

标签 java observable

我必须为可观察对象和观察者创建代码。正如您所知,每个观察者都有自己的“更新”方法。

在我的可观察代码中,我使用了“notifyObservers”方法。它的参数是一个字符串数组,其中包含有关我的项目的信息(命令号、汉堡包名称、饮料名称等)。

我的观察者中的更新方法仍然有错误,我不知道它来自哪里。它的两个参数是可观察的和包含我已经指定的信息的字符串数组。

这是我的代码

public void update(Observable arg0, Object arg1)
{
    if (!(arg0 instanceof BDCommande))
        System.out.println("Objet émetteur inconnu\n");
    if (arg1 instanceof String[]) {
        String[] labels = new String[5];
        labels = (String[]) arg1;
    }
    else
        System.out.println("Type de message inconnu");
    int num = Integer.parseInt(labels[0]);
}

该方法的最后一行检测到错误,标签[0]似乎无法识别。

如果有人能在这里帮助我,那就太好了。 谢谢 ! (抱歉我的英语不好,我是法国人)

最佳答案

您的错误来自您对标签的定义。只需将其更改为

public void update(Observable arg0, Object arg1)
{
    String[] labels = new String[5];
    if (!(arg0 instanceof BDCommande))
        System.out.println("Objet émetteur inconnu\n");
    if (arg1 instanceof String[]) {
      //  String[] labels = new String[5];
        labels = (String[]) arg1;
    }
    else
        System.out.println("Type de message inconnu");
    int num = Integer.parseInt(labels[0]);
}

还要确保您的标签确实已初始化。因为如果 (arg1 instanceof String[])false,那么您将得到一个 NullPointerException

关于Java 观察者/可观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49410048/

相关文章:

angular - 使用 Rxjs 或其他东西监听 Angular 中的数据库数据变化

Angular : Global variable not changing inside Subscription function

Angular:我可以从服务获取对象,但似乎我没有正确分配对象

java - 适用于 Android 的 Google 跟踪代码管理器 NullPointerException

java - 上一年 Google Analytics API 比较期

java - 流式合并 PDF

java - 无法使用 ScaleDrawable 缩放 Drawable

javascript - 为什么在对 RxJs Subject 调用 complete() 之后我不能再调用 next() 了?

angular - 如何在 Angular 5 中使用订阅进行单元测试?

java - Jaxb2Marshaller 在 Spring 解码 - 意外元素