リフレクションは、クラスを動的にロードし、オブジェクトをインスタンス化し、メソッドを呼び出すことができます。次の例を使って説明しましょう。
1. クラスをロードします。
Class clazz = Class.forName("java.lang.String"); //このコードは String クラスのクラス オブジェクトを取得します。パラメータにはパッケージ名が入ります。
URLClassLoader を使用する場合、ローカルまたはリモートの jar パッケージをロードし、loadclass メソッドを通じて特定のクラス オブジェクトを取得できます。
2 番目に、オブジェクトをインスタンス化します。オブジェクトがデフォルトのコンストラクターによってインスタンス化される場合、
Clazz..newinstance (); などのクラス オブジェクトのメソッドを使用してオブジェクトを取得できます。 次のコードが実現されます。 = myClass.getConstructor(parameterTypes);//コンストラクター オブジェクトを取得します。 ️パラメータの種類は Class>...パラメータタイプ (String.class、int.class など)。次に、コンストラクター オブジェクトを通じてインスタンス化されたオブジェクトを取得します。 myConstructor.newInstance("xxx",123); コンストラクターに特定の構築パラメーターを入力します。
3、メソッドを呼び出します。 Method mezod = clazz.getMethod(methodName,parameterTypes); メソッド クラスのオブジェクトを取得でき、mezod の invoke メソッドを通じてメソッドを実行できます。 mezod.invoke(obj,"xxx",123);//最初のパラメータは、このメソッドの開始オブジェクトです。 null が入力された場合、静的メソッドが呼び出されることを意味します。 記事は CSDN.NET から転載しています。著作権上の問題がある場合は、削除するようご連絡ください。
上記は非常に簡単な Java リフレクション チュートリアルの内容です。その他の関連コンテンツについては、こちらをご覧ください。 PHP 中国語 Web サイト (www.php.cn)!