眤ㄏノClassnewInstance()よ猭ㄓ龟ㄒてンㄒ
Class c = Class.forName(args[0]);
Object obj = c.newInstance();
狦更摸﹚竡Τ礚把计篶ㄧΑ玥ㄏノ硂贺よΑㄓ篶ぃ﹚﹍把计ン狦眤璶笆篈更のネΘン﹚把计玥璶﹚把计摸眔ConstructorンㄏノConstructornewInstance()﹚把计
ㄒㄓ弧и﹚竡Student摸
package onlyfun.caterpillar;
public class Student { private String name; private int score;
public Student() { name = "N/A"; }
public Student(String name, int score) { this.name = name; this.score = score; }
public void setName(String name) { this.name = name; } public void setScore(int score) { this.score = score; }
public String getName() { return name; }
public int getScore() { return score; }
public String toString() { return name + " " + score; } }
礛笆篈更よΑㄓ笆篈ネΘン
package onlyfun.caterpillar; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; public class NewInstanceDemo { public static void main(String[] args) { Class c = null; try { c = Class.forName(args[0]); // ﹚把计篈 Class[] params = new Class[2]; params[0] = String.class; params[1] = Integer.TYPE; Constructor constructor = c.getConstructor(params); // ﹚把计ず甧 Object[] paramObjs = new Object[2]; paramObjs[0] = "caterpillar"; paramObjs[1] = new Integer(90); // 龟ㄒて Object obj = constructor.newInstance(paramObjs); System.out.println(obj); } 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(); } } }
磅︽ㄒ
java onlyfun.caterpillar.NewInstanceDemo onlyfun.caterpillar.Student
caterpillar 90
|
|