我可以声明一个InterfaceA
,其中可以包含任何方法。但重要的是要说,它必须包含返回Return<T extends Data>
的方法(框架需要它们)。每个T
仅出现一次,并且没有方法返回Data
本身:
class InterfaceA {
Return<DataA> returnData...(...);
Return<DataB> returnData...(...);
...
}
我有ClassB:
class ClassB<T extends Data> {
InterfaceA a;
void process() {
Return<T> data = a.returnData(...);
...
}
}
我需要某种方法来根据InterfaceA
的类型T
从ClassB
中选择适当的方法。我该怎么办?
答案 0 :(得分:0)
我可以通过在接口中有一个方法来做到这一点,该方法将返回扩展数据的对象的类型,然后使用某些if语句或切换用例,然后根据该方法返回的内容运行一个方法。
例如。
public class Test extends Data{
private final String identifier;
public Test(String identifier){
this.identifier = identifier;
}
public String getIdentifier(){
return identifier;
}
}
不确定是否有帮助,就像其他人所说的那样,不是最好的设计模式。