从类名动态创建实例

时间:2011-11-07 15:15:42

标签: ruby metaprogramming

我有一个Ruby程序,它生成包含模块定义的文件:

 # try.rb
 module Test
  class F1
   def initialize arg
     @arg=arg
   end
  end
 end

现在,我希望相同的程序来创建F1的实例。

这样做的成语是什么?

1 个答案:

答案 0 :(得分:7)

loadrequire文件:

load 'path/to/try.rb'

然后您可以使用Object.const_get获取对类对象的引用,并使用它来创建实例:

cls = Object.const_get('Test').const_get('F1')
obj = cls.new('foo')