我想使用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>();
}

最佳答案

继承对接口的作用远不如类。

建议:
只需重构和简化您的接口即可,因此您无需扩展类本身!

界面更少,更小;接口的浅继承层次结构通常是一件好事。恕我直言...

07-24 20:05