我有一个为JavaRX创建简单Observer
的方法,看起来像
protected Observer observer;
protected <T> void createObserver(Class<T> type) {
observer = new Observer() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Object value) {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
};
}
如何在onNext
方法中设置当前类型?我的意思是我希望有这样的东西
@Override
public void onNext(type value) {
}
但这不起作用。
答案 0 :(得分:3)
以下代码应该有效:
protected <T> void createObserver(Class<T> type) {
observer = new Observer<T>() { // <-- It's possible to assign types with arbitrary type arguments to a raw type.
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(T value) { // <-- Now it's legal
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
};
}
然而,由于你完全没有意识到T
可能是什么,并且它只是java.lang.Object
,所以除了你知道{{1}你可能会收到。