String path ="com.liu.bean.User";
try {
Class clazz = Class.forName(path);
//通过反射调用构造方法构造对象
User user=(User) clazz.newInstance();//调用了 User的无参构造方法 javabean中必须手动添加无参构造器
System.out.println(user);
//获取指定的构造器
Constructor<User> c = clazz.getConstructor(int.class,String.class,String.class);
User uu = c.newInstance(111,"haha","男");
System.out.println(uu.getName());
//通过反射API 动态调用 普通方法
User u3 = (User) clazz.newInstance();
//方法名 //参数类型的Clas对像
Method method=clazz.getDeclaredMethod("setName", String.class);//
method.invoke(u3, "puti");
System.out.println(u3.getName());
//通过反射API操作属性
User u4 = (User) clazz.newInstance();
Field field = clazz.getDeclaredField("name");
//若不加 则 无法访问私有属性
field.setAccessible(true);//设置属性 不用做安全检查 可以直接访问
field.set(u4,"name404");
System.out.println(u4.getName());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
来源:http://www.bjsxt.com/