【发布时间】:2012-08-24 16:29:41
【问题描述】:
我正在使用 Java 实现 Observer / Observable 模式。但是,我在代码的 Observer 部分遇到了问题。
可观察
public class Model extends Observable {
public void notify() {
this.setChanged();
this.notifyObservers(new ArrayList<A>());
this.notifyObservers(new ArrayList<B>());
}
}
观察者
public class View implements Observer {
@Override
public void update(Observable observable, Object object) {
// TODO: If object is ArrayList<A>?
System.out.println("A");
// TODO: If object is ArrayList<B>?
System.out.println("B");
}
}
如何填写 TODO cmets 以检查 ArrayList 上的泛型?这甚至可能吗? (如果可能的话,我宁愿在不实现更多类的情况下这样做。)
【问题讨论】:
-
不确定这是否可能,因为已擦除。您无法在运行时分辨类型。看到这个删除docs.oracle.com/javase/tutorial/java/generics/erasure.html
标签: java generics observer-pattern