Simple example for you start understand how to create an objects by reflection :
public class ClassMap{ private Map<String,String> map; public void setMap(Map<String, String> map) { this.map = map; } // Here we do the loading of the class and return public Class getClass(String keyClass) throws Exception{ String v = map.get(keyClass); if(v != null){ return Class.forName(v); }else{ throw new RuntimeException("Not found with this key"); } } // To create new instance of a empty object public <E> E getObject(String keyClass) throws Exception { return (E) getClass(keyClass).newInstance(); } }
The example how to use this :
@Test public void testClassMap(){ ClassMap classMap = new ClassMap(); Map<String, String> myMap = new HashMap<String, String>(); myMap.put("ArrayList","java.util.ArrayList"); classMap.setMap(myMap); // create new instance try { // We used generics for don't need to do the Cast here ArrayList<?> myObject = classMap.getObject("ArrayList"); }catch (Exception r){ System.out.println(r); } }