I'm a bit lost as to your response.
Do you want to figure out the class name at runtime and dynamically pass it? You can use reflection facilities. Not sure what you mean by redundant code, use standard OO techniques and patterns to reduce redundancy in code. Or create some util libraries that do that.
Or do you mean that you want your classes to not have any create methods and be able to create them at runtime? You can use runtime bytecode injection/enhancement techniquest to do that. Take a look at the cglib libraries, and there are many more.