Create an object from a string

From CodeCodex

Implementations[edit]

Java[edit]


import java.lang.reflect.*;

Class [] classParm = null;
Object [] objectParm = null;
         
try {
  String name = "com.rgagnon.MyClass";
  Class cl = Class.forName(name);
  java.lang.reflect.Constructor co = cl.getConstructor(classParm);
  return co.newInstance(objectParm);
  }
catch (Exception e) {
  e.printStackTrace();
  return null;
}

Another example, but this time we are passing a parameter to the constructor and calling a method dynamically.


public class Test {
    public static void main(String args[]) {

        try {
          String name = "java.lang.String";
          String methodName = "toLowerCase";

          // get String Class
          Class cl = Class.forName(name);

          // get the constructor with one parameter
          java.lang.reflect.Constructor constructor =
             cl.getConstructor
               (new Class[] {String.class});

          // create an instance
          Object invoker =
             constructor.newInstance
               (new Object[]{"REAL'S HOWTO"});

          // the method has no argument
          Class  arguments[] = new Class[] { };

          // get the method
          java.lang.reflect.Method objMethod =
             cl.getMethod(methodName, arguments);

          // convert "REAL'S HOWTO" to "real's howto"
          Object result =
             objMethod.invoke
               (invoker, (Object[])arguments);

          System.out.println(result);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}