1

素朴な疑問かもしれませんが、

java.lang.reflectパッケージとそれに関連するクラスを使用する機会がありませんでした。しかし、Java コンパイラーがリフレクションを使用してクラス情報を取得していることは知っています。

私の質問は、リフレクション パッケージがコンパイラ自体によって使用されているときに、なぜ Java によって公開されたのかということです。リフレクトパッケージを使用する状況に光を当てることができる人はいますか?

4

4 に答える 4

4

簡単に言えば、クラスを内省してその構造を決定したいときはいつでも、名前 (文字列) などでメソッドを呼び出します。

多くのフレームワークがこれを使用します。

たとえば、Spring 構成 (XML) ファイルでプロパティを指定すると、その文字列 ("position" など) を取得し、メソッド名 ("setPosition" など) を導出して、それを呼び出します。この場合、文字列から開始し、実行時にメソッドを派生/呼び出したことに注意してください。コンパイラはまったく関与していません。

于 2013-06-04T15:51:56.113 に答える