如何实现类反射?

悬赏:5 发布时间:2008-06-25 提问人:zhangpeihao (初级程序员)

程序中有一个字符串变量存储了类的名称,例如:Class1, Class2, Class3等。
类Class1, Class2, Class3里面都有一个常量:MyConst。
用case ... when来处理比较麻烦,也不适合扩展。
我觉得Ruby既然是解释性语言,肯定可以直接通过名称来指定类。
谢谢。

采纳的答案

2008-06-25 xxj (初级程序员)

这个,最简单的方法就是用最邪恶的eval

ex:
1.upto(3) do |i|
  eval <<__CLAZZ__
    class Class#{i}
      MyConst = #{i}
    end
__CLAZZ__
end

puts Class1::MyConst
puts Class2::MyConst


提问者对于答案的评价:
谢谢

其他回答

const_get
liusong1111 (初级程序员) 2008-06-29