static O nuObjectWithoutArguments(S className) ctex {
ret nuObject(Class.forName(className), args);
}
static A nuObjectWithoutArguments(Class c) ctex {
Constructor m = nuObjectWithoutArguments_findConstructor(c);
m.setAccessible(true);
return (A) m.newInstance(args);
}
static Constructor nuObjectWithoutArguments_findConstructor(Class c, Object... args) {
for (Constructor m : c.getDeclaredConstructors())
if (empty(m.getParameterTypes())) ret m;
fail("No default constructor found in " + c.getName());
}