public class Control{
public static O factory(String className)
throws Exception{
return (O)Class.forName(className).newInstance();
}
}
//Client.java
//客户操作,进行对象的动态创建
public class Client{
public static void main(String[] args)
throws Exception{
A a=(A)Control.factory("A");
B b=(B)Control.factory("B");
C c=(C)Control.factory("C");
}
}
//A.java
//产品A
public class A implements O{
public A(){
System.out.println("A is created.");
}
}
//B.java
//产品B
public class B implements O{
public B(){
System.out.println("B is created.");
}
}
//C.java
//产品C
public class C implements O{
public C(){
System.out.println("C is created.");
}
}
public class Client{
public static void main(String[] args)
throws Exception{
A a=(A)Control.factory("A");
B b=(B)Control.factory("B");
C c=(C)Control.factory("C");
}
}
想问一下贴这段代码的朋友,既然类文件是动态增加的,要动态创建类的对象,就必须知道类的名字,假设已经知道类的名字,存储在字符串A中,例如String A = "newClass",那么如何用这个字符串声明引用来引用动态创建的新对象?