3

私はJavaで就職の面接のために学んでいます。Beans のイントロスペクションの概念を学ぶように言われたので、Web を検索して、次の投稿を含むいくつかのサイトを読みました。

私が理解している限り、Bean は Java の他のオブジェクト クラスと同じですが、このクラスには次の機能が必要です。

  1. すべてのプロパティは非公開 (getter/setter を使用)
  2. public 引数のないコンストラクター
  3. シリアライズ可能を実装します。

一般的なこと:

  1. イントロスペクションは、実行時にオブジェクトを「調べる」可能性を与えてくれます。そうすることで、クラスのプロパティ名、メソッド名のコンストラクターなどを取得できます。
  2. イントロスペクションは、リフレクションを使用してクラスの情報を取得します。

まだいくつか質問があります:

  1. なぜこの種のメカニズムが必要なのか、つまり、他のものを使用する代わりにイントロスペクションを使用する必要があるのはなぜですか?
  2. Bean のイントロスペクションと通常のイントロスペクションに違いはありますか?
  3. 私が使用できる方法以外にどのように機能していますか?

誰かがこの主題についての彼自身の見通しを私に教えてくれたり、有益な情報への何らかのリンクを教えてくれたりすると嬉しいです.

4

1 に答える 1

2

彼らが何を知りたいのかわかりません。apache-bean-utils
などのフレームワークを使用して、Bean構造に関する情報を照会できます。 このようなコードを手動で開発しました(大きな間違いです!:))- Java Bean表記に基づく再帰メカニズムを使用しました(つまり、セッターは「set」で始まる必要があり、 ゲッターはブール値の場合は「is」で始まるか、すべてのタイプの場合は「get」で始まります) ) 次に、このコードを使用していくつかの動作を自動化できます- 私の場合、例では、WSDLを解析し、コードを介してWS呼び出しとアプリケーションエンティティ間のバインディングを作成するツールを作成しました。 アプリケーションのユーザーは、マッピングの実行方法を示すXMLを提供しました。 つまり、WS呼び出しがPersonオブジェクトを返したとしましょう。







そのため、XMLはマッピングの実行方法を定義し、apache-bean-utilsのようなコードを使用してイントロスペクションを実行
し、どのセッターとゲッターを呼び出すかを理解しました。
これは、Javaアプリケーションで通常行われることとは対照的に行われました
。1。WSDLからJavaクライアントを生成します(つまり、wsdl2javaを使用します)
。2。クライアントコードを使用してアプリケーションをコンパイルします。

イントロスペクションはプロファイラーコードで使用できると思います。たとえば、
ゲッターとセッターを使用するフレームワークはたくさんあるので、これらのメソッドが効率的であることは非常に重要です。
したがって、mabyeプロファイルが最初に調べる必要があります。

質問を追加してください

于 2012-11-12T13:58:15.303 に答える