-4

所以让我们假设我有一个类方法call_me_once。有什么方法可以检查类的名称吗?

比如call_me_once.my_class_name

4

2 回答 2

2

如果您正在寻找方法的类名,有两种简单的方法可以实现这一点,每种方法都取决于您拥有的方法类型。如果它是一个类方法,那么你可以Method#receiver像这样使用:

class Test
  def cls_method
    puts "Class Method"
  end

  def some_method
    puts "Instance Method"
  end
end

Test.method(:cls_method).receiver # => Test

如果您正在处理实例方法,那么您将需要使用该Method#owner方法:

Test.instance_method(:some_method).owner # => Test

如果您事先不知道您是否接收到一个类或实例方法,您可以检查该方法是否会响应receiver哪些类方法会响应,哪些实例方法不会。

于 2013-10-04T04:26:27.910 回答
0

可以通过使用检查类

call_me_once.class
于 2013-10-04T04:26:10.223 回答