Rubyリファレンス: Home

method_defined? (Module)

Edit   History

標準クラス・モジュール > Module > method_defined?

mod.method_defined?(name)

method_defined?メソッドは、クラスやモジュールにインスタンスメソッドが定義されているかどうかを調べます。引数nameにはメソッド名をシンボルか文字列で渡します。メソッドがあればtrueを、なければfalseを返します。

trueを返すのは、publicなメソッドとprotectedなメソッドの場合です。privateなメソッドではfalseになります。親クラスやインクルードしているモジュールのメソッド名を指定してもtrueになります。

class Book
  def initialize(title)
    @title = title
  end
  def title
    @title
  end
end
 
p Book.method_defined?(:title)
p Book.method_defined?(:initialize)
p Book.method_defined?(:send)
true
false
true

関連項目