String className = "fanshe.Customer" ;
// className cus = new className();
// 得到类的信息
Class c = Class.forName(className);
// 得到构造函数,就可以生成一个对象
Constructor[] cons = c.getConstructors();
for ( int i = 0 ; i < cons.length; i++) {
String str = cons[i].getName();
System.out.println("名字:" + str);
Class[] params = cons[i].getParameterTypes();// 得到参数类型
for ( int j = 0 ; j < params.length; j++) {
String name = params[j].getName();
System.out.println(name);
}
}
//得到里面的成员函数(包括继承过来的),就可以调用成员函数
Method[] met = c.getMethods();
for ( int i = 0 ; i < met.length; i++) {
String str = met[i].getName();
System.out.println("名字:" + str);
Class[] params = met[i].getParameterTypes();// 得到参数类型
for ( int j = 0 ; j < params.length; j++) {
String name = params[j].getName();
System.out.println(name);
}
}
}
}
package fanshe;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class Test2 {
@SuppressWarnings ( "unchecked" )
public static void main(String[] args) throws Exception {
/*
* 反射为配置文件改变模块行为提供了可能
*/
String className = "fanshe.Customer" ;
Class c = Class.forName(className);
//c.newInstance();表示调用不带参数的构造函数
// 生成一个对象:用构造函数
Constructor con1 = c.getConstructor(new Class[] {Class.forName( "java.lang.String" ),Class.forName( "java.lang.String" ) });
//Constructor con1 = c.getConstructor(new Class[] {});// 得到不带参数的构造函数
// 生成对象
Object obj = con1.newInstance(new Object[] { "222" , "111" });
//Object obj = con1.newInstance(new Object[] {});// 表示不传入参数
//怎样调用obj里面的方法
Method met = c.getMethod("printInfo" , new Class[]{}); //得到方法
met.invoke(obj, new Object[]{}); //调用
/*Customer cus = new Customer("222","111");
cus.printInfo();*/
}
}
/*public class Test2 {
public static void main(String[] args) throws Exception {
String className = "fanshe.Customer";
Class c = Class.forName(className);
Constructor con1 = c.getConstructor(new Class[] {Class.forName("java.lang.String"),Class.forName("java.lang.String") });
Object obj = con1.newInstance(new Object[] {"222","111"});
Method met = c.getMethod("printInfo", new Class[]{});
met.invoke(obj, new Object[]{});
}
}*/
作者:yajie