2011-09-27 34 views
3

我有一個繼承自Hash的類。當這個類本身被繼承時,我想知道initialize方法中的繼承類的類名。當我撥打self時,我收到{},它不知道name方法。當從Hash類繼承的類的initialize方法中獲取類名稱

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

如何獲取類名?

回答

9

這很簡單:self.class.name

1

,如果你想要做一個檢查丹尼爾·布羅克曼的答案將返回字符串:

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

的事情是由於初始的意圖,當你調用Foo.new實例將永遠是Foo或孩子類的實例,所以我對你想要做的事感到困惑。