我有一个User对象,该对象需要响应两个不同的Publisher更改:
public class User implements Subscriber<Language>, Subscriber<TimeZone>
{
public User()
{
super();
Languages.getInstance().subscribe( this );
TimeZones.getInstance().subscribe( this );
}
}
@Override
public void onNext( Language language )
{
}
@Override
public void onNext( TimeZone timezone)
{
}
但是我遇到错误:The interface Subscriber cannot be implemented more than once with different arguments: Flow.Subscriber<TimeZone> and Flow.Subscriber<Language>
。
可以Observe
进行两个不同的事件,但是已不建议使用。如何使用新方法进行此操作?我是否必须创建一个同时包含Language
和TimeZone
的新对象,然后创建该对象,然后测试哪个对象不为null进行处理?
答案 0 :(得分:0)
我想我必须去:
public class SubscribeContainer
{
private Object ivObject;
public SubscribeContainer( Object object )
{
ivObject = object;
}
public Object getObject()
{
return ivObject;
}
}
然后
@Override
public void onNext( SubscribeContainer container )
{
Object object = container.getObject();
if (object instanceof TimeZone)
{
TimeZone newZone = (TimeZone) object;
// and so on
}
}