Java リフレクション
JAVA リフレクション メカニズムでは、実行状態では、どのクラスについても、そのクラスのすべてのプロパティとメソッドを知ることができ、どのオブジェクトについても、その動的に取得された情報と動的呼び出しを呼び出すことができます。オブジェクトのメソッドの仕組みは、Java 言語のリフレクション機構と呼ばれます。
次のようにコードをコピーします。
パッケージ C_20130313;
java.lang.reflect.Methodをインポートします。
クラス ユーザー
{
プライベート文字列名。
パブリック ユーザー(){}
public User(文字列名)
{
this.name=名前;
}
public voidsay()//パラメータのないメソッド
{
System.out.println("皆さんこんにちは、私の名前は "+name+" です!");
}
public voidsay(String str)//パラメータ付きメソッド
{
System.out.println("みなさん、こんにちは。私の名前は "+name+" です! "+str+"、私はパラメータを持つメソッドです!");
}
}
/**
* @著者LXA
※最も単純な反省例
*/
公開授業の振り返り
{
public static void main(String[] args) が例外をスローする
{
Class c=Class.forName("C_20130313_reflection.User");//リフレクションを通じて対応するクラスを検索します
Method m1=c.getMethod("say");//パラメータなしでsayという名前のメソッドを検索します
Method m2=c.getMethod("say",String.class);//String 型パラメータを持つ Say という名前のメソッドを検索します
m1.invoke(c.newInstance());//newInstance() はパラメーターなしのコンストラクターを呼び出すことに注意してください。 ! !
m2.invoke(new User("Liu Xian'an"),"Haha");//パラメータ化された構築メソッドを通じてオブジェクトをインスタンス化する
}
}