Javaでリフレクションを使用してメソッドを呼び出す方法
リフレクションを使用して Java でメソッドを呼び出す方法
リフレクションは Java 言語の重要な機能であり、実行時にクラス情報を動的に取得し、クラスを操作できます。 、フィールド、メソッド、コンストラクターなどを含みます。リフレクションを使用すると、コンパイル時に特定のクラスを知らなくてもクラスのメンバーを操作できるため、より柔軟で汎用性の高いコードを作成できます。この記事では、リフレクションを使用して Java でメソッドを呼び出す方法と、具体的なコード例を紹介します。
1. クラスの Class オブジェクトを取得する
Java でリフレクションを使用してメソッドを呼び出すには、まずクラスの Class オブジェクトを取得する必要があります。 Class オブジェクトは次の方法で取得できます。
- クラスの class 属性を使用します: classname.class
たとえば、String クラスの Class オブジェクトを取得するには、次のようにします。次のコード:
Class stringClass = String.class; - オブジェクトの getClass() メソッドを使用します
たとえば、文字列オブジェクトの Class オブジェクトを取得するには、次のコードを使用できます。 code:
String str = "Hello" ;
Class strClass = str.getClass(); - Class クラスの静的メソッド forName() を使用します
たとえば、 String クラスのクラス オブジェクトでは、次のコードを使用できます:
Class stringClass = Class.forName("java.lang.String");
2. メソッドの呼び出し
クラスの Class オブジェクトを取得した後、リフレクションを使用してクラス メソッドを呼び出すことができます。まず、メソッドのオブジェクトを取得する必要があります。メソッドのオブジェクトは、次の 2 つの方法で取得できます。
- Class クラスの getMethod() メソッドを使用して、指定されたメソッドを取得します。
このメソッドには、次の名前とパラメータの型が必要です。渡されるメソッドを返し、Method オブジェクトを返します。たとえば、次のコードは String クラスの length() メソッドを取得します。
Method lengthMethod = stringClass.getMethod("length"); - Class クラスの getMethods() メソッドを使用して取得します。すべてのパブリック メソッド
このメソッドは、すべてのパブリック メソッドを含む Method 配列を返します。たとえば、次のコードは String クラスのすべてのパブリック メソッドを取得します。
Method[]messages = stringClass.getMethods();
メソッドのオブジェクトを取得した後、 Method クラス () メソッドを呼び出してメソッドを呼び出します。 invoke() メソッドは、メソッドが属するオブジェクトとメソッドのパラメーターを渡す必要があり、メソッドの戻り値を返します。たとえば、次のコードは String クラスの length() メソッドを呼び出し、メソッドの戻り値を出力します。
int length = (int) lengthMethod.invoke(str);
System.out.println(length);
3. サンプル コード
import java.lang.reflect.Method; public class ReflectionExample { public static void main(String[] args) throws Exception { // 获取String类的Class对象 Class stringClass = String.class; // 获取String类的length()方法 Method lengthMethod = stringClass.getMethod("length"); // 创建一个字符串对象 String str = "Hello, Reflection!"; // 调用length()方法,并输出返回值 int length = (int) lengthMethod.invoke(str); System.out.println("字符串的长度为:" + length); } }
上記のコードでは、最初に String クラスの Class オブジェクトが取得され、次に String クラスの length() メソッドが取得され、文字列オブジェクトが作成されます。最後に、length() メソッドが呼び出され、文字列の長さを示す戻り値が出力されます。
概要
リフレクションを通じて、クラス情報を動的に取得し、実行時にクラス メンバーを操作できます。この記事では、リフレクションを使用して Java でメソッドを呼び出す方法を紹介し、具体的なコード例を示します。この記事の紹介を通じて、読者がリフレクションの使用法をよりよく理解し、習得できることを願っています。以上がJavaでリフレクションを使用してメソッドを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

Java のアームストロング番号に関するガイド。ここでは、Java でのアームストロング数の概要とコードの一部について説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです
