我想使用2个实现,但我不确定如何将每个实现传递给每个实现。这是我到目前为止所得到的:
A的界面:
public interface A<T extends A<T, U>, U extends B<T, U>>{
}
B界面:
public interface B<T extends A<T, U>, U extends B<T, U>> {
}
实施A:
public class AImpl<T extends B<AImpl<T>, T>> implements A<AImpl<T>, T>{
}
B的实施:
public class BImpl<T extends A<T, BImpl<T>>> implements B<T, BImpl<T>> {
}
现在我想使用A和B.我不确定如何实现它们。这是我最初的尝试:
主要:
//this doesn't work
private AImpl<BImpl> a;
private BImpl<AImpl> b;
public main() {
a = new AImpl<BImpl>();
b = new BImpl<AImpl>();
}
答案 0 :(得分:1)
对于接口而言,继承对于类来说远没有那么有用。
建议: 只需重构和简化您的界面,这样您就不会 扩展除了类本身之外的所有内容!
更少,更小的接口;接口的浅层继承层次结构通常是一件好事。 IMHO ...