-1

我可以声明一个InterfaceA,它可以包含任何方法。但重要的是,它必须包含方法(它们是框架要求的),即 return Return<T extends Data>. 每个T只存在一次,并且没有返回Data自身的方法:

class InterfaceA {
    Return<DataA> returnData...(...);
    Return<DataB> returnData...(...);
    ...
}

我有 B 类:

class ClassB<T extends Data> {
    InterfaceA a;

    void process() {
        Return<T> data = a.returnData(...);
        ...
    }
}

我需要一些方法来InterfaceA根据T. ClassB我怎样才能做到这一点?

4

1 回答 1

0

我会通过在接口中使用一个方法来实现,该方法将返回扩展数据的 Object 的类型,然后使用一些 if 语句或 switch-case 来根据该方法返回的内容运行一个方法。

例如。

public class Test extends Data{

private final String identifier;

public Test(String identifier){

this.identifier = identifier;

}
public String getIdentifier(){

return identifier;

}
}

不确定这是否有帮助兄弟,因为其他人说这不是最好的设计模式。

于 2018-08-01T16:04:40.800 回答