ホームページ > Java > &#&チュートリアル > Java クラスにアノテーションが存在するのはなぜですか?

Java クラスにアノテーションが存在するのはなぜですか?

(*-*)浩
リリース: 2019-05-28 09:59:12
オリジナル
2754 人が閲覧しました

JDK5 から、Java はメタデータ、つまりアノテーションのサポートを追加しました。アノテーションとアノテーションの間には、一定の違いがあります。アノテーションは、コード内の特別なマークとして理解できます。これらのマークは、コンパイル時、クラスのロード時に使用できます。 、runtime.を読み込み、対応する処理を行います。注釈を使用すると、開発者は元のコードやロジックを変更することなく、ソース コードに補足情報を埋め込むことができます。

Java クラスにアノテーションが存在するのはなぜですか?

アノテーションとは

アノテーションは、クラス/メソッドの拡張テンプレートとみなすことができます。各クラス/メソッドには異なるアノテーションが付けられます。アノテーションクラスのルールに従って、クラス/メソッドのパラメータを取得することができます。使用すると、異なるクラス/メソッドでアノテーションが付けられたさまざまなパラメータや値を取得できます。

アノテーションはアノテーションです。以前の私と同じように、コメントはコメントやドキュメントと同じように補助的なテキストの一部であると考えていますが、実際にはコメントはそのようなものではありません。

JDK5 以降、Java はメタデータ (データの属性を説明する情報) のサポートを追加しました。実際、率直に言うと、これらはコード内の特別なフラグであり、これらのフラグはコンパイル、クラスの読み込み、実行時に読み取ることができ、他のツールによる情報の補足や展開を容易にするために対応する処理を実行できます。

アノテーション (注釈) ドキュメントの作成、コード内の依存関係の追跡、さらには基本的なコンパイル時のチェックの実行にも使用できます。ある意味、アノテーションは修飾子のように使用され、パッケージ、型、コンストラクター、メソッド、メンバー変数、パラメーター、およびローカル変数の宣言に適用されます。この情報は、Annotation の「name=value」構造ペアに格納されます。
アノテーションのメンバーは、アノテーション型のパラメーターなしメソッドの形式で宣言されます。そのメソッド名と戻り値によって、メンバーの名前と型が定義されます。

ここには特定のデフォルト構文があります:

任意の Annotation メンバーのデフォルト値の宣言を許可します: Annotation は、あたかも no であるかのように、name=value ペアを持つことができます。デフォルト値が定義されている Annotation メンバーの値は、もちろん、name=value ペアを使用して他のメンバーのデフォルト値をオーバーライドすることもできます。これはクラスの継承特性に似ており、親クラスのコンストラクターをサブクラスのデフォルトのコンストラクターとして使用できますが、サブクラスによってオーバーライドされることもできます。
アノテーションを使用すると、任意の情報を特定のプログラム要素 (クラス、メソッド、メンバー変数など) に関連付けることができます。

ここには基本的なルールがあります:

注釈はプログラム コードの実行に影響を与えることはできません。注釈が追加されるか削除されるかに関係なく、コードは常に同じになります。

さらに、一部の注釈は実行時に Java のリフレクション API メソッドを通じてアクセスされますが、Java 言語インタープリターは動作時にこれらの注釈を無視します。コード内で注釈タイプが「機能しない」のは、Java 仮想マシンが注釈を無視するためです。

注釈タイプの情報は、一部のサポート ツールを介してのみアクセスおよび処理できます。

アノテーションの意味コンパイラーに補助情報を提供します - アノテーションは、エラーの検出や警告の抑制などを容易にするためにコンパイラーに外部情報を提供できます。
コンパイルソース コード タイムアウト操作 - ソフトウェア ツールは、注釈情報を処理して、元のコード、XML ファイルなどを生成できます。
実行時処理 - 一部の注釈は、プログラムの実行中に、使用して検出することもできます。 、アノテーション メタデータの一種で、「説明と構成」の役割を果たします。

以上がJava クラスにアノテーションが存在するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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