我可以给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类?
答案 0 :(得分:5)
如果无法修改类,则不能强制接口加入对象。但是,您可以创建一个接口和两个实现此接口的adapters。
答案 1 :(得分:2)
被黑客攻击的解决方案是:
if(object instanceof A)
((A)object).sameMethod();
else if(object instanceof B)
((B)object).sameMethod();
但如果你能让他们实现一个接口会好得多