Javaリフレクションとは何ですか

爱喝马黛茶的安东尼
リリース: 2019-11-12 09:55:29
オリジナル
3103 人が閲覧しました

Javaリフレクションとは何ですか

リフレクションとは何ですか?

リフレクションには「reverse」と付いているので、逆の処理ということになります。それでは、まず転送プロセスがどのようなものかを見てみましょう。

クラスを設計し、クラスをオブジェクトにインスタンス化します。オブジェクトはメソッドまたはプロパティを呼び出していくつかの関数を実装します。

Javaリフレクションとは何ですか#リフレクションとは何ですか?

Javaリフレクションとは何ですか上の写真をまだ覚えているかどうかわかりませんが、これは私が Java に初めて触れたときに学んだ知識です。私自身の理解では、1 がわかり、2 が推測され、2 を通じて他の情報が得られるようになりました。 (これは単なる私の推測です。真実かどうかについては、今後さらに掘り下げる必要があります。)

現実のシナリオにたとえると、次のとおりです。

你:妈妈,你知道剪刀在哪吗?
妈妈:我那天放针线的时候好像在针线盒里看到了,你去找找有没有。针线盒在客厅的茶几上。
你:好的。
ログイン後にコピー

Then 「裁縫」から「裁縫箱」を導き出し、「裁縫箱」から「はさみ」を見つけました。

Javaリフレクションとは何ですか私たちの反省は、クラスまたはオブジェクトから Class クラスを推定し、Class クラスからクラス情報を取得することです。

さらに混乱していますか?心配しないで、下を見てください。

裁縫箱を探す - Class クラスを取得する

まず、Class クラスとは何でしょうか。

People クラスが p のクラスであるのと同様に、Class クラスは People クラスのクラスです。 Class クラスは p の「祖父」です。

Javaリフレクションとは何ですか次のように理解できます。java.lang.Class のインスタンス オブジェクトは People で、People のインスタンス オブジェクトは p です。私たちのアイデアは、People クラスまたは p オブジェクトを通じて Class クラスを取得し、次に Class クラスを通じて属性、メソッド、コンストラクターなどの People クラス情報を取得することです。

Class クラスが何であるかがわかったので、それを取得する方法について話しましょう。

Class クラスを見つけるには 3 つの方法があります:

Javaリフレクションとは何ですかc1、c2、および c3 は「クラス タイプ」と呼ばれることに言及する価値があります。 People クラス。さて、既知の条件を要約しましょう:

People: Class

p: Object

c: Class Type

# #Findハサミ - People クラスの情報を取得します

アプリケーション 1: クラスのすべてのメソッドを取得します

Javaリフレクションとは何ですかPeople クラスの取得メソッドにおいて、ms は People クラスのメソッドを格納する配列であり、ループを通じてその名前、パラメータの型、戻り値を階層ごとに取得します。

#最後に、メイン関数内で直接呼び出します。

#得られる部分的な結果は次のとおりです。

Javaリフレクションとは何ですか

アプリケーション 2: クラスのすべての属性を取得するJavaリフレクションとは何ですか

##呼び出しは、呼び出しメソッドと似ています。 Javaリフレクションとは何ですか

実行結果:

Javaリフレクションとは何ですか

アプリケーション 3: クラスのコンストラクターを取得します

Javaリフレクションとは何ですか

コンストラクターは似ていますが、やはり異なります。

#アプリケーション 4: クラスの特定のメソッドを取得する

Javaリフレクションとは何ですか

実行結果は次のとおりです。2 つの呼び出しメソッドの結果は同じです:

Javaリフレクションとは何ですか

上記は、個々の関数の単なるリストです。さらに具体的な情報については、これは、API ドキュメントで見つけることができます: http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

Javaリフレクションとは何ですか

##リフレクションの概念

記事の最後では、リフレクションの概念を要約し、私たちの考えを昇華させます。

リフレクションの定義とは何ですか?

JAVA リフレクション メカニズムでは、実行状態では、どのクラスについても、そのクラスのすべてのプロパティとメソッドを知ることができ、どのオブジェクトについても、そのメソッドのいずれかを呼び出すことができます。オブジェクトのメソッドを動的に取得して呼び出す機能をJava言語のリフレクション機構といいます。

反省は必要ですか?

「リフレクション メカニズムは、多くの Java フレームワークの基礎です。」

(1) XML ファイルまたはプロパティに構成を記述し、XML ファイルまたは Java クラスのプロパティの内容を解析して文字列を取得し、リフレクション メカニズムを使用して、以下に基づいて特定の文字列を取得します。この文字列はクラスのクラス インスタンスなので、何かを動的に構成できます。毎回コードに新しいものを追加したり、他のことを行う必要はありません。将来変更したい場合は、構成を直接変更できます。ファイルを作成すると、コードのメンテナンスが非常に便利になります。

(2) 特定のニーズを満たすために、Java クラス内の他のメソッドを直接呼び出すことができない場合がありますが、このときはリフレクション メカニズムを通じて実現することもできます。

リフレクションのデメリットは?

コードを見ると、リフレクションされたコードは通常の呼び出しコードよりも多くのコードがあり、パフォーマンスが低下していることがわかります。そのため、リフレクションの使用は避けるべきです。これは、ハサミの場所がすでにわかっている場合、針と糸、ミシン、箱ハサミという経路をたどる必要がないのと同じです。

リフレクションを使用するかどうかの基準は何ですか?

関数がリフレクションなしで完了できる場合は、その関数を使用しないのが最善です。

php 中国語 Web サイト、無料の

Java 入門チュートリアル が多数あり、オンラインで学習することを歓迎します。

以上がJavaリフレクションとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート