Ruby中的反思。通过给定的类名实例化对象

时间:2010-03-31 20:21:34

标签: ruby reflection

我从PHP来到ruby。 我怎么能在红宝石中做下一件事呢?

$className = 'ArrayObject';
$arrayObject = new $className();

3 个答案:

答案 0 :(得分:28)

你可以这样做:

arrayObject = Object::const_get('Array').new

答案 1 :(得分:17)

如果您使用Ruby on Rails,也可以使用以下内容:

array_object = "Array".constantize.new

答案 2 :(得分:5)

如果你有一个类,比如String:

a = String
a.new("Geo")

会给你一个字符串。同样的事情也适用于其他类(当然,数字和参数类型会有所不同)。