Ruby:如何在没有对象的情况下获取类的方法?

时间:2009-09-17 11:09:28

标签: ruby reflection

“abc”.respond_to?(:sub)返回true,但String.respond_to?(:sub)返回false。 第二个返回false,因为它询问类Class的对象是否有方法sub,因为String是Class的Object。方法()......

也是如此

我如何做这些事情,特别是response_to?()而不创建该类的对象。

2 个答案:

答案 0 :(得分:5)

您可以使用method_defined?类中声明的Module方法。

答案 1 :(得分:2)

如果您要确认方法是否存在,String.method_defined? :sub将起作用。如果您对实例方法特别感兴趣,请使用以下内容:

String.instance_methods.index 'sub'

请注意,您必须使用字符串,而不是符号。