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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© paozhuanyinyu 中级黑马   /  2014-9-19 21:23  /  1255 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 paozhuanyinyu 于 2014-9-20 11:10 编辑

写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.   
public void setProperty(Object obj, String propertyName, Object value){   
}

5 个回复

正序浏览
本帖最后由 Huberry 于 2014-9-20 02:03 编辑

复制代码
  1. public void setProperty(Object obj, String propertyName, Object value){   
  2.     PropertyDescriptor pd = new PropertyDescriptor(propertiesName, obj.getClass()); //获取这个属性
  3.     Method setPro = pd.getWriteMethod(); //取得这个属性的set方法
  4.     setPro.invoke(obj,value); //调用set方法
  5. }   
复制代码

            

回复 使用道具 举报
Allencheng 发表于 2014-9-19 21:37
public void setProperty(Object obj, String propertyName, Object value) throws Exception {                         Field  ...

这样是可以,但是好像用内省
回复 使用道具 举报
射了。。。。
回复 使用道具 举报
Allencheng 发表于 2014-9-19 21:37
public void setProperty(Object obj, String propertyName, Object value) throws Exception {                         Field  ...

反射轻松解决
回复 使用道具 举报
        public void setProperty(Object obj, String propertyName, Object value) throws Exception {                         Field f = obj.getClass().getDeclaredField(propertyName);                         f.setAccessible(true);                         f.set(obj, value);         }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马