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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 段海涛 中级黑马   /  2012-11-26 21:36  /  2200 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 段海涛 于 2012-11-26 21:38 编辑

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


一种理解:题中的obj对象是不是特指的JAVA系统中根类——Object类 的一个实例?
但这样的实例应该不具备propertyName属性啊?

另一种理解:题中所谓obj对象及其propertyName属性都是我自己定义的?如果是这样理解的话,这题目相当容易

可是,究竟该怎么理解?求大神解答

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

5 个回复

倒序浏览
是你的第二种理解,因为出题人不知道你自定义的类的类名,所以就用Object类型泛指,毕竟Object是上帝类,所有java类都可以转型成Object类型。
回复 使用道具 举报
题目的意思我懂,但我不会做
意思是将Object中某一属性设置值设为value;
该属性属性名用参数传入
回复 使用道具 举报
本帖最后由 ljhheima 于 2012-11-26 22:06 编辑
刘子义 发表于 2012-11-26 21:49
是你的第二种理解,因为出题人不知道你自定义的类的类名,所以就用Object类型泛指,毕竟Object是上帝类,所 ...


这是Object及其子类,即除了基本数据类型的任何对象
不只是你创建的类
可以是任何类的任何非private和protect属性
回复 使用道具 举报
类的属性 肯定是私有的 所以 肯定有GET SET方法  那就太简单了 ....
public void setProperty(Object obj, String propertyName, Object value){
obj.setpropertyName(value);
}
回复 使用道具 举报
呵呵,这个题是考的反射,因为要设置的虽然是一个成员属性的值,但题目给你的是这个成员属性的名称,是一个字符串,“propertyName”,
显然不能通过这样的方式来赋值   obj()."propertyName"  = value

所以,必须用到反射来对obj对象的propertyName成员进行赋值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马