class
A{
A(){ /五惨构造器
}
String name;
//A的一个属性
int
id;
//A的一个属性
A(String name){
//含有一个String类型的构造器
this
.name = name;
id =
0
;
}
A(
int
id,String name){
this
.id = id;
this
.name = name;
}
}
A functionA()
throws
Exception{
//注意必须抛出或捕获异常
Class<?> aClaz = Class.forName(
"A"
) ;
//获取A的Class对象,注意这里必须是包名+类名
//或你可以用下面的方法创建class对象
//Class<?> aClaz = A.class; //注意Class的大小写,这个方法优于上面的方法
创建A的一个实例,通过五惨构造器
A a = (A)aClaz.newInstance();
//newInstance 是Class的方法,
//他是利用Java反射生成一个对象,但是类型是Object的,所以我们要加上强制转换
return
a;
}
A functionA(String name)
throws
Exception{
//遇到有参构造器就不能直接newInstance了,我们必须获取Constructor对象
Class<?> aClaz = Class.forName(
"A"
) ;
//获取构造器,参数类型是String的Class类型
Constructor con = aClaz.getConstructor(String.
class
);
//利用构造器生成对象,并传入参数name
A a = (A)con.newInstance(name)
return
a;
}