这是我的用例,

public interface dataModel {
   //nothing
}
public interface dataRepo {
    public doIt(dataModel a);
}
public class concreteDataModel implements dataModel {
    public doIt(dataModel a);
}
public class concreteDataRepo implements dataRepo {
    public doIt(dataModel a);
}


我觉得我做错了。我有几个datarepo和datamodel。我希望存储库采用自己类型的数据模型。是否有任何设计图案可以使之干净?

最佳答案

您可以使用泛型。

public interface dataModel {
   //nothing
}
public interface dataRepo<T extends dataModel> {
    public doIt(T a);
}
public class concreteDataModel implements dataModel {
    public doIt(dataModel a);
}
public class concreteDataRepo implements dataRepo<concreteDataModel> {
    public doIt(concreteDataModel a);
}

关于java - 如何强制具体类以具体实例为参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29734696/

10-10 15:06