implements GenericObserver<DataService, Tools>, GenericObserver<MobileService, Tools>
不能多次使用不同的参数来实现。
这是我的界面:
public interface GenericObserver<S, D> {
void update(S sender, D data);
}
我能做什么?我需要
DataService
和MobileService
。我尝试使用通用的
T
而不是DataService
和MobileService
,但是我收到一个错误,表明T
不存在。 最佳答案
一种可能性:
abstract class Service {}
class DataService extends Service {}
class MobileService extends Service {}
class Foo implements GenericObserver<Service, Tools> {
void update(Service sender, Tools data) {
if (sender instanceOf DataService) {
// do something
} else if (sender instanceOf MobileService) {
// do something else
} else {
// throw some notImplemented exception
}
}
}
Visitor pattern是另一种可能性(
GenericObserver
是可访问的)。