ホームページ Java &#&チュートリアル Java リフレクション メカニズムのサンプル コード分析

Java リフレクション メカニズムのサンプル コード分析

Apr 15, 2023 am 09:34 AM
java

1. リフレクション メカニズムの定義

Java リフレクション メカニズムは、実行状態で任意のクラスの構造を取得し、オブジェクトを作成し、メソッドを取得し、メソッドを実行し、属性を実行します。実行状態で動的に情報を取得し、オブジェクトのメソッドを動的に呼び出す機能をJava言語のリフレクション機構といいます。

2. リフレクション メカニズムの実行プロセス

Java プログラムの実行中、Java ランタイム システムは常にすべてのオブジェクトに対していわゆるランタイム型識別を実行します。この情報は、各オブジェクトが属するクラスを記録します。仮想マシンは通常、実行時の型情報を使用して、実行する正しいメソッドを選択します。この型情報を保存するために使用されるクラスは、Class クラスです。

3. Class オブジェクトを取得するには 3 つの方法があります

// 1.通过字符串获取Class对象,这个字符串必须带上完整路径名 
Class studentClass = Class.forName("com.test.reflection.Student"); 
// 2.通过类的class属性 
Class studentClass2 = Student.class; 
// 3.通过对象的getClass()函数
 Student studentObject = new Student(); 
 Class studentClass3 = studentObject.getClass();

最初の方法は、クラスのフル パス文字列を通じて Class オブジェクトを取得することです。これも最も一般的に使用されるメソッドです。Class オブジェクトを取得するためのリフレクション メソッド。

2 番目のメソッドには制限があります。クラスのパッケージをインポートする必要があります。

3 番目のメソッドには既に Student が含まれています。オブジェクトになり、反射する必要がなくなりました。

これら 3 つのメソッドを通じて取得される Class オブジェクトは同じです。つまり、Java の実行時には、クラスごとに Class オブジェクトが 1 つだけ生成されます。

Java とは

Java は、デスクトップ アプリケーション、Web アプリケーション、分散システム、組み込みシステム アプリケーションを作成できるオブジェクト指向プログラミング言語です。

ここまでで、皆さんは「Java リフレクション メカニズムのサンプル コード分析」についての理解が深まったと思います。ぜひ実際に実行してみてください。これはこのサイトです。その他の関連コンテンツについては、関連するチャネルにアクセスして問い合わせることができます。フォローして学習を続けてください。

以上がJava リフレクション メカニズムのサンプル コード分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

一般的なJava nullpointerexceptionの問題をオプションで解決します 一般的なJava nullpointerexceptionの問題をオプションで解決します Aug 31, 2025 am 07:11 AM

オプションは、Java 8によって導入されたコンテナクラスです。値が空である可能性があることを明確に示すために使用され、それによりnullpointerexceptionが回避されます。 2. MAP、Orelse、およびその他の方法を提供し、メソッドがnullの返却を防ぎ、収集の返品値を標準化することにより、ネストされたヌルチェックを簡素化します。 3.ベストプラクティスには、値のみの値のみが含まれ、フィールドまたはパラメーターの使用を回避し、orelsegtとolelsegetを区別し、get()を直接呼び出しません。 4.オプションは虐待されるべきではありません。空でない方法を包む必要がない場合、ストリームでは不必要なオプション操作を避ける必要があります。オプションを正しく使用すると、コードのセキュリティと読みやすさが大幅に向上する可能性がありますが、適切なプログラミング習慣が必要です。

Chromeでブックマークを編集します Chromeでブックマークを編集します Aug 27, 2025 am 12:03 AM

Chromeブックマークの編集はシンプルで実用的です。ユーザーは、ショートカットキーCTRL Shift O(Windows)またはCMD Shift O(MAC)を介してブックマークマネージャーを入力したり、ブラウザメニューから入力したりできます。 1.単一のブックマークを編集するときは、右クリックして「編集」を選択し、タイトルまたはURLを変更し、[完了]をクリックして保存します。 2.ブックマークをバッチで整理する場合、Ctrl(またはCMD)をブックマークマネージャーの複数選択ブックマークに保持できます。右クリックして、ターゲットフォルダーに「移動」または「コピー」を選択します。 3.ブックマークをエクスポートしてインポートするときは、「解決」ボタンをクリックして「ブックマークをエクスポート」するためにHTMLファイルとして保存し、必要に応じて「インポートブックマーク」機能を介して復元します。

閉じた後に保存しない笑ゲーム設定[修正] 閉じた後に保存しない笑ゲーム設定[修正] Aug 24, 2025 am 03:17 AM

IfLeagueofLegendssettingsaren’tsaving,trythesesteps:1.Runthegameasadministrator.2.GrantfullfolderpermissionstotheLeagueofLegendsdirectory.3.Editandensuregame.cfgisn’tread-only.4.Disablecloudsyncforthegamefolder.5.RepairthegameviatheRiotClient.

キーボードで動作しないキーを入力します キーボードで動作しないキーを入力します Aug 30, 2025 am 08:36 AM

まず、cehcecalissicalissues slikedebrisordamageandcleanthekeyboard withanexternalone;

ラッパークラスとは何ですか?なぜJavaで使用されているのですか? ラッパークラスとは何ですか?なぜJavaで使用されているのですか? Sep 01, 2025 am 05:58 AM

wrapperclasseSaRasseSaReSSEUSTOCONTOCONTOCONTIVEDINTIVESTIPESINTOOBJECTS、IRISUSENCOLLECTIONSを可能にし、nullValuesを許可し、カウートボクシング/unboxing.1.theyAllowprimitiveSobeearrectionSlikEarrylist、

Javaのメモリリークとは何ですか? Javaのメモリリークとは何ですか? Aug 28, 2025 am 05:37 AM

AmemoryLeakinjavaoccurswhenununReachable objectsareNotgarbagecollecteddueTolingReferences、excessiveMemoryusageandofmemoryerror.commoncausesincludestaticCollection -retaininectainedededefine、commoncausesincludestaticcectainection coltained retainedectarecomestreamsorne

Javaのストリームで最大値または最小値を見つける方法 Javaのストリームで最大値または最小値を見つける方法 Aug 27, 2025 am 04:14 AM

max()およびmin()メソッドを使用して、比較対象のコンパレーターを組み合わせて、comparator.naturalorder()またはinteger :: compareToの基本タイプなど、ストリーム内の最大値と最小値を見つけます。 2。カスタムオブジェクトの場合、Comparator.comparing()を使用して、Person :: Getageなどの特定のフィールドに基づいて比較します。 3。結果はオプションであるため、空のストリームの状況を処理する必要があります。 ispresent()を使用して、またはorelse()をチェックしてデフォルト値を提供できます。ボクシングのオーバーヘッドを避け、パフォーマンスを向上させるために、基本タイプにIntstreamを使用することをお勧めします。最終的には、常に適切に完了する必要があります。

CVE-2024-20674 |Windows Kerberosセキュリティ関数は脆弱性をバイパスします CVE-2024-20674 |Windows Kerberosセキュリティ関数は脆弱性をバイパスします Sep 02, 2025 pm 05:18 PM

0x00序文Kerberosは、これらのサイバーセキュリティの問題の解決策としてMITによって作成されました。ネットワーク上でセキュリティ検証処理を提供するクライアント/サーバーアーキテクチャです。検証を通じて、ネットワークトランザクションの送信者と受信者の身元が真実であることを保証できます。このサービスは、前後に渡されたデータの有効性(整合性)を検証し、送信中にデータを暗号化することもできます(機密性)。 0x01脆弱性の説明被害者ネットワークにアクセスできる攻撃者は、中間(MITM)攻撃または他のローカルネットワークスプーフィング技術を確立し、クライアントの被害者のコンピューターに悪意のあるKerberosメッセージを送信し、Kerberos認証サーバーのふりをすることにより、この脆弱性を活用できます。 0x02cve

See all articles