У меня есть эти три интерфейса как часть API интерфейса Fluent (где много метод построения цепочки происходит):Как повторно использовать распространенный расширенный интерфейс в Java?
interface VerifierA extends VerifierC {
VerifierA method1();
// other methods elided
}
interface VerifierB extends VerifierC {
VerifierB method1();
// other methods elided
}
interface VerifierC {
VerifierA commonMethod();
}
commonMethod()
Объявив, как VerifierA
я могу тогда методы цепных commonMethod().method1()
но не commonMethod().method2()
;
Как я могу получить commonMethod()
в VerifierC
Вернуться к обоим VerifierA
или VerifierB по мере необходимости?
Я думаю, что это уже задавала в http://stackoverflow.com/questions/1069528/method-chaining-inheritance-don-t-play-well- или http://stackoverflow.com/questions/9655335/method-chaining-how-to-use-getthis-trick-in-case-of-multi-level-inheritance – pringi
Прочитав указанный ответ, я боюсь, я не могу применить его к моей ситуации, состоящей только из интерфейсов ... – Andrejs
Почему вы не просто позволяете commonMethod возвращать VerifierC и переопределять в VerifierB, чтобы вернуть VerifierB и VerifierA, чтобы вернуть VerifierA? – david