ruby求助,动态获取对象属性值,ruby,ruby,

gudaobeige 2012-11-21 04:48:49
场景:有一个公共方法专门用来展示数据的,如下所示展示
名称 年龄 部门
A 50 测试
B 30 测试
该方法有三个参数:sourceData(数组对象)、showName(数组)、objectAttribute(数组)
数据示例:sourceData=[object,object,....]、showName=["名称","年龄","部门"]、objectAttribute=["name","age","department"]

因为是公共方法,所以这三个参数的内容是不一样的,showName被另外一个方法调用就可能变成了["宽度","长度"]。其余两个参数类似。
传给该方法的数据以及展示字段的名称都是不一样的,其中原始数据是用数组对象传输的。
循环sourceData,获去单个对象object。
现在问题来了,获得了对象后怎么根据objectAttribute中的属性字段获取该属性值哪。
...全文
456 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gudaobeige 2012-11-22
  • 打赏
  • 举报
回复
引用 3 楼 suciver 的回复:
是js的还是java的 如果你得到object1 如果是js的可以用 JavaScript code? 123 for(var i=0; i<objectAttribute.length;i++) var value=object1[objectAttribute[i]]; value就是属性值了。 如果是java的就更简单了可以用反射,或者直接用apache……
ruby ,用ruby
suciver 2012-11-22
  • 打赏
  • 举报
回复
是js的还是java的 如果你得到object1 如果是js的可以用

for(var i=0; i<objectAttribute.length;i++)
var value=object1[objectAttribute[i]];
value就是属性值了。 如果是java的就更简单了可以用反射,或者直接用apache提供的BeanUtils工具类。

for(String propName:objectAttribute)
//这里用BeanUtils工具类
Object value=PropertyUtils.getProperty(object1,propName);
//用反射的话是这样的
Field field=object1.getClass().getDeclareField(propName);
value=field.get(object1);
suciver 2012-11-22
  • 打赏
  • 举报
回复
ruby的别跑到javaEE来提问
gudaobeige 2012-11-21
  • 打赏
  • 举报
回复
引用 1 楼 suciver 的回复:
objectAttribute的数组索引以及长度不是和sourceData对应了吗 这样objectAttribute[0]中这个属性字段的所有值数组不就是sourceData[0]; objectAttribute[1]中这个属性字段的所有值数组不就是sourceData[1]; 依次类推
objectAttribute 字段是sourceData中对象的属性 假如现在已经取到了sourceData的一个对象了object1,怎么取object1 的各个属性值哪? for i in objectAttribute puts i #内容就是objectAttribute 中的值 object1.i #这样去肯定是不对的。object.age这样可以去的到,但是这样就不是动态的了 end
suciver 2012-11-21
  • 打赏
  • 举报
回复
objectAttribute的数组索引以及长度不是和sourceData对应了吗 这样objectAttribute[0]中这个属性字段的所有值数组不就是sourceData[0]; objectAttribute[1]中这个属性字段的所有值数组不就是sourceData[1]; 依次类推

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧