Try to create an instance of a given class by using whatever constructor is available and trying to instantiate the first parameter recursively if there is a parameter for that constructor.
Try to create an instance of a given class by using whatever constructor is available and trying to instantiate the first parameter recursively if there is a parameter for that constructor.
This is useful to instantiate nested classes which are referencing their outer class in their constructor
Inlined from org.specs2.reflect.Classes