从Hash继承的类时,从initialize方法中获取类名

时间:2011-09-27 12:41:43

标签: ruby introspection

我有一个继承自Hash的类。当这个类本身被继承时,我想知道initialize方法中继承类的类名。当我致电self时,我会收到{},但不知道name方法。

class Foo < Hash
  def initialize
    # Here i want to know that the class is Foo
  end
end

如何获取班级名称?

2 个答案:

答案 0 :(得分:9)

这很简单:self.class.name

答案 1 :(得分:1)

如果你想做检查,Daniel Brockman的回答会给你回复字符串:

if self.kind_of?(Foo)
  #whatever you want
end

这是由于初始化程序的意图,当你调用Foo.new时,实例将永远是类Foo或子类的实例,所以我对你要做的事情感到困惑。