This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
And if you would have listened to Jesper you would have seen an InstantiationException occurred on line 13 when you tried to create the instance. The reason is very clear: newInstance() tries to invoke the constructor that has no arguments. However, your class does not have such a constructor. The only constructor requires a String. That means that you must use java.lang.reflect.Constructor to create the instance.
That looks good, except you've started using AClass.class to find the class. That makes the point of using reflection useless; if you already know the class is going to be AClass, why not just use new AClass("hello")?
The following on the other hand makes much more sense (assuming that the "AClass" actually comes from somewhere else):
Note that this is a direct combination of two lines of code you posted yourself. All I did was replace AClass.class by Class.forName("AClass"), taken from your original post.
D'oh! I completely missed that. Perhaps this example isn't the best for reflection; sure it works, but it's useless. Reflection mostly is used when the variable's reference type is either an interface or an abstract class.