【发布时间】:2011-05-11 15:28:51
【问题描述】:
我来自 Java,想知道是否可以使用自省为对象“设置”实例变量。
例如,如果我有以下类声明,带有两个实例变量 first_attribute 和 second_attribute:
class SomeClass
attr_accessor :first_attribute
attr_reader :second_attribute
def initialize()
# ...
end
end
我希望能够获取实例方法,大概是通过调用SomeClass.instance_methods 并知道哪些实例方法是读/写与只读的。
在 Java 中我可以这样做:
PropertyDescriptor[] properties = PropertyUtils.GetPropertyDescriptors(SomeClass);
for (prop : properties) {
if (prop.getWriteMethod() != null) {
// I can set this one!
}
}
如何在 Ruby 中做到这一点?
【问题讨论】:
-
好消息:在 attr_accessor 或 attr_reader 之后不需要分号。
标签: ruby introspection