nirajj,
Any time you are doing dynamic class loading, reflection is key.
Some things you can do to avoid performance hits, but would make your class more static:
1. Use select case statements, and allow only predefined class types. Ex:
switch (type) {
case typeInt: // code, etc...