我想查看哪些类继承了一个固定的类。Ruby中是否有此方法?
Aptana提供了显示此选项,但是否有其他方法?
谢谢
我想查看哪些类继承了一个固定的类。Ruby中是否有此方法?
Aptana提供了显示此选项,但是否有其他方法?
谢谢
您是要查看一个类的所有祖先,还是后代?对于祖先,请使用:
Class.ancestors
然而,对于子类,没有可比较的“开箱即用”方法。 但是,您可以使用下面的ObjectSpace方法,但它很慢,并且可能在Ruby实现之间不可移植:
ObjectSpace.each_object(Class) do |klass|
p klass if klass < StandardError
end
编辑:
还可以使用Class#inherited钩子来跟踪子类化。但是,这不会捕获在定义跟踪功能之前创建的任何子类,因此可能不适合您的用例。但是,如果您需要以编程方式在应用程序内定义的类上使用该信息,则可以选择此方法。
示例:
class Foo
end
class Bar < Foo
end
Bar.ancestors # => [Bar, Foo, Object, Kernel]