Ryan Delucchi asked here in comment #3 to Tom Hawtin‘s answer:
why is Class.newInstance() ‘evil’?
this in response to the code sample:
// Avoid Class.newInstance, for it is evil. Constructor<? extends Runnable> ctor = runClass.getConstructor(); Runnable doRun = ctor.newInstance();
so, why is it Evil?
The Java API documentation explains why (http://java.sun.com/javase/6/docs/api/java/lang/Class.html#newInstance()):
In other words, it can defeat the checked exceptions system.