A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.  
public void setProperty(Object obj, String propertyName, Object value){   
}
public class Main {
        public static void main(String[] args) throws NoSuchFieldException,
                        SecurityException, IllegalArgumentException, IllegalAccessException {
                Person p = new Person();
                Person.setProperty(p, "propertyName", "value");
        }
}

class Person extends Object {
        private String propertyName = "abc";

        public String toString() {
                return propertyName;

        }

        public static void setProperty(Object obj, String propertyName, Object value)
                        throws NoSuchFieldException, SecurityException,
                        IllegalArgumentException, IllegalAccessException {
                //反射
                Class c = obj.getClass();
               //得到需要的量
                Field f = c.getDeclaredField("propertyName");
                // Method m = c.getDeclaredMethod(name, parameterTypes);
               //语言校验
                f.setAccessible(true);
                f.set(obj, value);
                System.out.println(obj.toString());
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马