Вы имеете в виду, что у A есть B, а у B есть A, и вы пытаетесь внедрить их обоих друг в друга? Логично, что поведение, которое вы описываете, имеет смысл.
A a = new A()
B b = new B()
a.setB( b )
b.setA( a )
выглядит хорошо, но как это должно выглядеть?
A a = new A( b )
B b = new B( a )
Независимо от того, как вы переписываете вторую группу, вы не можете создать A, который зависит от B, с помощью конструктора.