[英]Ruby get instance method definition from Class
我试图从Class对象获得方法的定义:foo。
class Bar
def foo(required_name, optional="something")
puts "Hello args are #{required_name}, #{optional}"
end
def self.bar
puts "I am easy, since I am static"
end
end
我无法创建类的实例 ,因为我需要方法定义来评估我应该创建对象(应用程序需求)。 Bar.class.???(:foo)
我可以使用Bar.class.method(:bar)
获得bar
定义但当然我需要foo
,谢谢!
更新:
使用Ruby 1.8.7
您可以在类这样的类上使用方法instance_method
:
Bar.instance_method(:foo)
这将返回UnboundMethod
一个实例。 (见http://ruby-doc.org/core-1.9.3/UnboundMethod.html )
您可以发现该类是否具有实例方法:foo
如下:
Bar.instance_methods.include? :foo
一个例子:
String.instance_methods.include? :reverse
=> true
String.instance_methods.include? :each
=> false
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.