Ruby クラスメソッドをインスタンスメソッドから呼び出す

Rubyでクラスメソッドをインスタンスメソッドから呼び出すには、次のようにします。

  • クラス名.クラスメソッド名
  • self.class.クラスメソッド名
  • (他にもあるのかな?)

次のようなクラスがあったとします。

class Hoge
 def self.AAA
 end

 def BBB
 end
end

インスタンスメソッドのBBBからクラスメソッドのAAAを呼び出すには、次のようにします。

def BBB
 Hoge.AAA
 self.class.AAA
end

所感

self.classの方がメンテナンス性がよさそうかも。