徐海蛟 教学
1类名->对象
通过传入的类名,构建相应的对象。
import java.lang.reflect.*;
class Teacher {
private String name;// 姓名
private String university;// 毕业学校
private String loc;// 所在地
public Teacher() {}// 空构造器
public Teacher(String name, String university, String loc) {
this.name = name;
this.university = university;
this.loc = loc;
}
public String getInfo() {
return "老师姓名:" + name + ",毕业学校:" + university + ",所在地:" + loc;
}
}
public class TeacherFactory {// 老师工厂
public static void main(String args[]) throws Exception {
TeacherFactory app = new TeacherFactory();
Object[] obj = { "徐海蛟", "华中科技大学", "深圳" };// 参数
Teacher Teacher = (Teacher) app.create("Teacher", obj);
System.out.print(Teacher.getInfo());
}
private Object create(String className, Object[] obj) throws Exception // 找到构造方法并构造
{
Class myClass = Class.forName(className);
try {
Constructor cons = myClass.getConstructor(new Class[]{String.class, String.class, String.class});
return cons.newInstance(obj);
} catch (Exception e) {
return myClass.newInstance();
}
}
}