2007.08.14

リフレクションとは?

最近、リフレクションに興味があります。

リフレクションとは何かと言うと、
プログラムの情報(クラス、メソッド、フィールド)を
取得、操作することの出来る仕組みです。

例えば、通常、あるメソッドの有無を調べる際には
ソースを読みメソッドの有無を確認しなければなりませんが、
リフレクションの機能を使用すると、
メソッドの名前(文字列)からその存在等を調べることができ、
それらを呼び出すことも出来ます。

どのような時に使用するのか?
例えば、オブジェクトからオブジェクトへ値を移し返る時など有効です。
規則に沿ってメソッド名(setterやgetter)を付けておけば、
その規則に従ってメソッドを呼び出し、
処理を自動化させることも可能です。

ただ、プログラムの中身がわかりずらくなってしまうというデメリットもあります。
とはいえ、リフレクションを有効活用することで、コーディング量も減り、
単純なミスを減少させることが出来るのではないでしょうか。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
osano