package info.frady; public class User { private String name; private String id; public User(){ System.out.print("自定义的初始化函数被调用了"); } public User(String id,String name){ this.id=id; this.name=name; System.out.print("自定义的带参数的初始化函数被调用了"); } public void sayHi(){ System.out.print("hi,guys.I am "+name); } }
package info.frady; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; public class ReflectTest { /** * @param args */ public static void main(String[] args) { /* try { User user=(User)Class.forName("info.frady.User").newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); }*/ try { Class cl=Class.forName("info.frady.User"); Constructor ct=cl.getConstructor(new Class[]{String.class,String.class}); User user=(User)ct.newInstance(new Object[]{"1","frady"}); user.sayHi(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } }