a- class MyMethod {// 将方法设为类MyMethod的成员方法
- public void setProperty(Object obj, String propertyName, Object value) {
- Class cl = obj.getClass();// 获取对象的Class字节码对象
- Field field = null;
- try {
- field = cl.getDeclaredField("propertyName");// 通过反射获取域值对象
- field.setAccessible(true);// 关闭java的语言检查,使隐私成员也可被设置
- field.set(obj, value);// 通过Field对象设置属性值
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- public class Test3 {
- public static void main(String[] args) {
- People p = new People();// 新建一个测试对象
- // 设置属性
- new MyMethod().setProperty(p, "propertyName", "Lily");//将属性值设为Lily
- p.show();//输出设置的属性值
- }
- }
- class People { // 测试类
- private String propertyName;
- public void show() {
- System.out.println("propertyName = " + propertyName);
- }
- }
复制代码
|
|