String path ="com.liu.bean.User";
try {
Class clazz = Class.forName(path);
//获取类的名字
String string=clazz.getName();
System.out.println(clazz.getName());//包名 加类名
System.out.println(clazz.getSimpleName());// 纯类名
//获取属性信息
Field[] fields=clazz.getFields();//只能 返回公开属性 public
Field[] fields2=clazz.getDeclaredFields();//获取所有的 field
for(Field s:fields2) {
System.out.println("属性 -->"+s);
}
Field field=clazz.getDeclaredField("name");
//获取方法信息
Method[] methods = clazz.getDeclaredMethods();
Method m1=clazz.getDeclaredMethod("getName", null);
Method m2=clazz.getDeclaredMethod("setName", String.class);
//如果放法有参则传递参数类型 对应的Class 对象
for(Method s:methods) {
System.out.println("方法 "+s);
}
//获取 构造器 信息
Constructor[] constructors=clazz.getConstructors();
Constructor r = clazz.getDeclaredConstructor(int.class,String.class,String.class);
for(Constructor c:constructors) {
System.out.println("构造器 --》"+c);
}
System.out.println("有参构造-->"+r);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
来源:http://www.bjsxt.com/