Java 通用接口处理两个版本

Java 通用接口处理两个版本,java,mongodb,generics,inheritance,interface,Java,Mongodb,Generics,Inheritance,Interface,我有以下课程: public class Server extends ServerVersion1 { @Id private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } } public interface ServerRepository extends MongoRepository<Server,String&

我有以下课程:

public class Server extends ServerVersion1 {
   @Id
   private String id;
   public String getId() { return id; }
   public void setId(String id) { this.id = id; }
}

public interface ServerRepository extends MongoRepository<Server,String> {

}
公共类服务器扩展ServerVersion1{
@身份证
私有字符串id;
公共字符串getId(){return id;}
public void setId(字符串id){this.id=id;}
}
公共接口服务器存储库扩展了MongoRepository{
}
我创建了ServerVersion2,如何编写一个泛型类来处理这两个版本


谢谢

创建ServerVersion1和ServerVersion2将扩展的抽象父类。将两个子类中重复的代码移动到抽象父类。现在,在您的代码中要处理任何一个ServerVersion类的对象的地方,请使用对该抽象父类的引用。

您的问题不清楚-是否可以添加更多上下文?将ServerVersion2添加到mongo中的现有服务器集合(表)。我无法访问ServerVersion1,我能做什么?我明白了。然后我将尝试按如下方式组织它:使用您的服务器类作为父类,它包含与这两个服务器版本相关的所有内容。然后创建两个子类,比如ServerV1和ServerV2。在您的程序中,使用Server(甚至ServerVersion1)作为您希望能够处理ServerV1或ServerV2对象的数据类型。由于这些对象是扩展服务器的类的实例化,它们通过了“Is-A”测试,应该可以工作。是否将集合作为参数传递给调用方法?是否可以发布该方法的当前签名?我想你只需要