Creating circular generic references
Circular generic references are indeed possible. Java Generics and Collections includes several examples. For your case, such a specimen would look like this: public interface P2PNetwork<N extends P2PNetwork<N, C>, C extends P2PClient<N, C>> { void addClient(C client); } public interface P2PClient<N extends P2PNetwork<N, C>, C extends P2PClient<N, C>> { void setNetwork(N network); } class TorrentNetwork … Read more