Mega Code Archive

 
Categories / Java by API / Java Lang
 

Java lang InstantiationException

import static java.lang.System.out; import java.lang.reflect.InvocationTargetException; public class Main {   public Main() {   }   public Main(Integer i) {   }   public Main(Object o) {     out.format("Constructor passed Object%n");   }   public Main(String s) {     out.format("Constructor passed String%n");   }   public static void main(String... args) {     String argType = (args.length == 0 ? "" : args[0]);     try {       Class<?> c = Class.forName("Main");       if ("".equals(argType)) {         // IllegalArgumentException: wrong number of arguments         Object o = c.getConstructor().newInstance("foo");       } else if ("int".equals(argType)) {         // NoSuchMethodException - looking for int, have Integer         Object o = c.getConstructor(int.class);       } else if ("Object".equals(argType)) {         // newInstance() does not perform method resolution         Object o = c.getConstructor(Object.class).newInstance("foo");       } else {         assert false;       }       // production code should handle these exceptions more gracefully     } catch (ClassNotFoundException x) {       x.printStackTrace();     } catch (NoSuchMethodException x) {       x.printStackTrace();     } catch (InvocationTargetException x) {       x.printStackTrace();     } catch (InstantiationException x) {       x.printStackTrace();     } catch (IllegalAccessException x) {       x.printStackTrace();     }   } }