Java リフレクション メカニズムは、Class.forName() メソッドを通じて列挙型クラスの Class オブジェクトを取得し、クラスとそのメンバーの検査を可能にします。すべての列挙定数は、enumClass.getEnumConstants() メソッドを通じて取得できます。また、enumClass.getField() メソッドを通じて特定の列挙定数にアクセスし、フィールドとして null を渡してその値を取得することもできます。列挙定数。特定のオブジェクトのインスタンスではありません。
#Java リフレクション メカニズムは列挙型をどのように処理しますか?
Java リフレクション メカニズムは、実行時にクラスとメソッドを検査および操作する機能を提供します。イントロスペクション、動的プロキシ、コード生成などのタスクによく使用されます。この記事では、列挙型がリフレクション メカニズムとどのように相互作用するかに焦点を当てます。
列挙型クラスのリフレクション操作
列挙型クラスの Class オブジェクトを取得するには、以下に示すように、Class.forName()
メソッドを使用できます。 #
Class<?> enumClass = Class.forName("MyEnum");Class オブジェクトを取得したら、リフレクション API を使用してクラスとそのメンバーを検査できます。たとえば、すべての列挙型定数を取得するには、
enumClass.getEnumConstants() メソッドを使用します。
Object[] enumConstants = enumClass.getEnumConstants();結果は、すべての列挙型定数値を含む配列になります。 列挙定数へのアクセス列挙定数にアクセスするには、次のように
enumClass.getField() メソッドを使用できます。
Field colorField = enumClass.getField("COLOR");このメソッドは、列挙定数を表すフィールド オブジェクト。列挙定数の値は、
Field.get() メソッドを使用して取得できます。
String color = (String) colorField.get(null);列挙定数の場合は、
null を
get( ) 列挙定数は特定のオブジェクトのインスタンスではないため、メソッド パラメーターが必要です。
enum MyEnum { RED, GREEN, BLUE } public static void main(String[] args) { String colorToFind = "GREEN"; // 获取枚举类的 Class 对象 Class<?> enumClass = Class.forName("MyEnum"); // 查找具有指定名称的枚举常量 Enum> enumConstant = null; for (Object constant : enumClass.getEnumConstants()) { if (constant.name().equals(colorToFind)) { enumConstant = (Enum>) constant; break; } } if (enumConstant != null) { System.out.println("枚举常量 \"" + colorToFind + "\" 的 ordinal(): " + enumConstant.ordinal()); } else { System.out.println("找不到枚举常量 \"" + colorToFind + "\""); } }この例では、トラバーサル列挙型を使用します。クラス内の定数を調べ、その名前をチェックして、指定された名前を持つ列挙定数を見つけます。定数が見つかると、その ordinal() 値が出力されます。
以上がJava リフレクション メカニズムは列挙型をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

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

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
