3

我可以给 2 个不同的类(我不能修改,因为它们是自动创建的 web 服务类)相同的接口吗?

问题:我有几个自动创建的 web 服务类,它们有一个具有相同签名的方法。但是由于这些类没有公共接口,我无法对它们进行分组,因此无法从一个方法中调用它们。

例子:

class A {
  void sameMethod();
}
class B {
  void sameMethod();
}


class MyService() {
  //I cannot do the following as I cannot group A and B with the same interface
  void callAorB(<Class A or B> object) {
     object.sameMethod();
  }
}

是否仍然可以执行 òbject.sameMethod() even though I cannot make a common reference betweenclass A andclass B`?

4

2 回答 2

5

如果您不能修改类,那么不,您不能将接口强制到对象上。但是,您可以创建一个接口和两个实现此接口的适配器。

于 2013-11-14T15:47:15.213 回答
2

被黑的解决方案是:

if(object instanceof A)
   ((A)object).sameMethod();
else if(object instanceof B)
   ((B)object).sameMethod();

但是如果你能让他们实现一个接口会更好

于 2013-11-14T15:46:07.660 回答