黑马程序员技术交流社区

标题: 入学测试题不会做帮下忙 [打印本页]

作者: 微笑=.一瞬间    时间: 2014-4-21 19:28
标题: 入学测试题不会做帮下忙
2、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.   

public void setProperty(Object obj, String propertyName, Object value){   
}

该怎么做啊

作者: kevinmesss.tz    时间: 2014-4-21 20:03
这就是beanutils包里面的setProperty方法,查下源码一下就看的到了
自己用内省也能做出来
跟你说个思路吧:
通过内省机制获取属性描述器PropertyDesicript,
通过属性描述器拿到属性名为PropertyName的set方法
将value作为参数传递给set方法
作者: hhmm665544    时间: 2014-4-21 20:28
  1. public void setProperty(Object obj, String propertyName, Object value){
  2.                 Class clazz = obj.getClass();
  3.                 try {
  4.                         Field field = clazz.getField("propertyName");
  5.                         field.set(obj,"value");
  6.                        
  7.                 } catch (SecurityException e) {
  8.                         // TODO Auto-generated catch block
  9.                         e.printStackTrace();
  10.                 } catch (NoSuchFieldException e) {
  11.                         // TODO Auto-generated catch block
  12.                         e.printStackTrace();
  13.                 } catch (IllegalArgumentException e) {
  14.                         // TODO Auto-generated catch block
  15.                         e.printStackTrace();
  16.                 } catch (IllegalAccessException e) {
  17.                         // TODO Auto-generated catch block
  18.                         e.printStackTrace();
  19.                 }
  20.         }
复制代码

作者: Igreaterik    时间: 2014-4-27 16:49
基础测试题不能在里面求助吧,会扣分的。
作者: luoyang316    时间: 2014-4-28 10:19
带走带走 。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2