如何重用Java中常见的扩展接口方法?

How to reuse common extended Interface method in Java?

我将这三个接口作为 Fluent 接口的一部分 API(其中发生了很多方法链接):

    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();

如何根据需要将 VerifierC return 中的 commonMethod() 同时提供给 VerifierA 或 VerifierB?

你可以用泛型解决它:

interface VerifierA extends VerifierC<VerifierA> {
     VerifierC<VerifierA> method1();
}

interface VerifierB extends VerifierC<VerifierB> {
    VerifierC<VerifierB> method1();
}

interface VerifierC<T> {    
    T commonMethod();
}