gpt4 book ai didi

Java 观察者/可观察者

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:25 29 4
gpt4 key购买 nike

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

在我的可观察代码中,我使用了“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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com