私が知り、理解している限りでは、
リフレクションは、実行時にソース コードを作成/変更する機能です。
ウィキペディアから:
- 実行時にソース コードの構造 (コード ブロック、クラス、メソッド、プロトコルなど) をファーストクラス オブジェクトとして検出して変更します。
- クラスまたは関数の記号名に一致する文字列を、そのクラスまたは関数への参照または呼び出しに変換します。
- 実行時にソース コード ステートメントであるかのように文字列を評価します。
言語のバイトコードの新しいインタープリターを作成して、プログラミング構造に新しい
意味または目的を与えます。
動的言語は、実行時に評価 (文字列から直接評価) できる言語です。
ウィキペディアから: 「新しいコードの追加、オブジェクトと定義の拡張、または型システムの変更によるプログラムの拡張」
さて、私の質問は次のとおりです。静的言語 (eval 機能なし) はどのようにリフレクション (Java など) を持つことができますか? (新しいソースコードが評価されない? :/)
前もって感謝します!