プログラムが、自分自身に関する情報を読み取ったり、書き換えたりする技術のことです。
たとえば、「実行時にオブジェクトの型が何であるかを調べ、それによって処理を分岐させる」、「文字列を使って、オブジェクトが持っているメソッドを取り出して、呼び出す」といった、柔軟なプログラムを実現できる技術です。以下は架空のプログラミング言語による例です。
// オブジェクトの型を問い合わせて分岐する
if (obj.GetType() == Type.Int) {
// ...
}
else if (obj.GetType() == Type.String) {
// ...
}
// 文字列を使って、オブジェクトのメソッドを取り出して実行する
Method method = obj.GetMethod("StartProcess");
method.Invoke();
この例のようなリフレクションは、プログラムの実行時に行われるものであり、動的リフレクションと呼ばれることがあります。また、リフレクションをコンパイル時に行う場合は、静的リフレクションと呼ばれます。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |