我在 JAVA 中执行 obersver 模式的更新时遇到问题。我将来自队列系统的 ArrayList 发送到我的 Observer/s。现在的问题出在观察者中,我将 ArrayList 作为对象接收。下一步将转换为 ArrayList,但由于 Java 的运行时,我没有参数信息,这会导致不安全的转换。我的意思是我可以用一个完整的通用类通知我的观察者,但我不知道我是不是弄错了,或者它是“用巨石射击小鸟”。结果最终没有错误,因为我总是用一个类型通知这个观察者,但问题是我应该接受警告还是有解决方法。
ArrayList<Message> messageList = sqsUtil.getMessagefromAnotherEntrypoint("myQueueName");
if (messageList != null) {
// notify Observers
notifyObservers(messageList);
}
然后是发生不安全演员表的更新
@Override
public void update(Observable o, Object arg) {
ArrayList<Message> aMessageList = (ArrayList<Message>)arg;
}
不过感谢帮助