如何给两个不同的类相同的接口?

时间:2013-11-14 15:42:20

标签: java

我可以给2个不同的类(我不能修改,因为它们是自动处理的webservice类)相同的接口吗?

问题:我有几个自动处理的webservice类,它们有一个具有相同签名的方法。但由于类没有通用接口,我无法对它们进行分组,因此无法从单个方法中调用它们。

示例:

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 between A类and B类?

2 个答案:

答案 0 :(得分:5)

如果无法修改类,则不能强制接口加入对象。但是,您可以创建一个接口和两个实现此接口的adapters

答案 1 :(得分:2)

被黑客攻击的解决方案是:

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

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