黑马程序员技术交流社区

标题: 这个题是什么意思?求解答 [打印本页]

作者: 段海涛    时间: 2012-11-26 21:36
标题: 这个题是什么意思?求解答
本帖最后由 段海涛 于 2012-11-26 21:38 编辑

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


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

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

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

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


这是Object及其子类,即除了基本数据类型的任何对象
不只是你创建的类
可以是任何类的任何非private和protect属性
作者: ⋛⋋⊱⋋飞☠扬    时间: 2012-11-26 22:47
类的属性 肯定是私有的 所以 肯定有GET SET方法  那就太简单了 ....
public void setProperty(Object obj, String propertyName, Object value){
obj.setpropertyName(value);
}
作者: 段海涛    时间: 2012-11-26 23:19
呵呵,这个题是考的反射,因为要设置的虽然是一个成员属性的值,但题目给你的是这个成员属性的名称,是一个字符串,“propertyName”,
显然不能通过这样的方式来赋值   obj()."propertyName"  = value

所以,必须用到反射来对obj对象的propertyName成员进行赋值




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