简体   繁体   English

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

[英]How to reuse common extended Interface method in Java?

I have these three Interfaces as part of the Fluent Interface API (where a lot of method chaining happens): 我将这三个接口作为Fluent接口API的一部分(其中发生了很多方法链接):

    interface VerifierA extends VerifierC {

      VerifierA method1();
      // other methods elided
    }

    interface VerifierB extends VerifierC {
     VerifierB method1();
       // other methods elided
    }

   interface VerifierC {
   VerifierA commonMethod();
   }

By declaring commonMethod() as VerifierA I can then chain methods commonMethod().method1() but not commonMethod().method2() ; 通过将commonMethod()声明为VerifierA我可以链接方法commonMethod().method1()而不是commonMethod().method2()

How can I have commonMethod() in VerifierC return to both VerifierA or VerifierB as needed? 如何在VerifierCcommonMethod()根据需要返回到VerifierA或VerifierB?

you could solve it with generics: 您可以使用泛型来解决它:

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

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM