argius note

プログラミング関連

メッセージング?

Javaから入門した人には難しいんじゃないかと思われる概念。私もちゃんとわかってる訳じゃないですが。
Rubyの場合、メソッドコールはメッセージの送出であり、そのメソッドが実装されているかどうかに関わらず、オブジェクトに通知されます。ただ、オブジェクトに「そんなメソッドありません!」と叱られます(NoMethodError)。
Javaの場合、コンパイル時に叱られますが、リフレクションなどを使えば同じことができます(NoSuchMethodException)。コンパイル時はあったけど実行時には無くなってる場合は、例外でなくエラーとなります(NoSuchMethodError)。