如何重用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();
}
我将这三个接口作为 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();
}