Предположим, у меня есть класс ApiClient (автоматически сгенерированный), который не реализует интерфейс.
Есть еще один класс X, который расширяет ApiClient, чтобы иметь некоторые дополнительные и переопределяющие методы.
class X extends ApiClient{
X (Settings s){
super();
this.setPropertyInheritedfromApiClient-A("food");
this.setPropertyInheritedfromApiClient-B(thisClassMethod());
}
thisClassMethod(){ return "wee" ; }
}
Был бы аналогичный тип класса X, и каждый из них был бы производным от класса, идентичного ApiClient, но поскольку они генерируются автоматически, пакеты будут отличаться, а значения определенных полей будут отличаться, например, от url.Для отступления каждый ApiClient представляет отдельную конечную точку WebService.
Хотя я могу продолжать писать класс, подобный X, для каждого, соответствующего каждому ApiClient (определенному для разных конечных точек WebService), но логика по существу остается той же.
Я бы хотел что-то вроде
class X extends T {
X (Settings s){
super();
this.setPropertyInheritedfromApiClient-A("food"); // FAIL since Type of super class is not known
this.setPropertyInheritedfromApiClient-B(thisClassMethod()); //FAIL
}
}
Как я могу подойти к этой проблеме с помощью подхода Java Generics или какой шаблон проектирования применить?
Я не могу придуматьназвание вопроса - пожалуйста, предложите