implements GenericObserver<DataService, Tools>, GenericObserver<MobileService, Tools>

不能多次使用不同的参数来实现。

这是我的界面:
public interface GenericObserver<S, D> {

    void update(S sender, D data);
}

我能做什么?我需要DataServiceMobileService

我尝试使用通用的T而不是DataServiceMobileService,但是我收到一个错误,表明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是可访问的)。

08-04 05:04