ホームページ  >  記事  >  Java  >  Javaプログラミング思考学習クラス (7) 第20章 - 注意事項

Javaプログラミング思考学習クラス (7) 第20章 - 注意事項

php是最好的语言
php是最好的语言オリジナル
2018-08-09 14:59:021332ブラウズ

アノテーション (メタデータとしても知られています) は、コード内に情報を追加するための正式な方法を提供し、後でデータのある時点でこれらを非常に便利に使用できるようにします。

1 基本構文

アノテーション付きメソッドは他のメソッドと変わりません。アノテーションは、メソッドの任意の修飾子 (public、static、void など) とともに使用できます。構文の観点から見ると、アノテーションは修飾子とほぼ同じように使用されます。

1.1 アノテーションの定義

アノテーションの定義はインターフェースの定義とよく似ています。実際、他の Java インターフェースと同様に、 アノテーションもクラス ファイル にコンパイルされます。

アノテーションを定義する場合、@Target@Retention などのいくつかの メタアノテーション が必要になります。 @Target@Retention

  在注解中,一般都会包含一些元素以表示某些值。当分析处理注解时,程序或工具可以利用这些值。注解的元素看起来就像接口的方法,唯一的区别是你可以为其指定默认值。元素的类型有限制。

  没有元素的注解称为标记注解(marker annotation)

  所有注解都继承了annotation

package net.mrliuli.annotations;import java.lang.annotation.*;@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface Test {} //(marker annotation)

1.2 三种标准注解和四种元注解

  定义在java.lang中的三种标准注解:

  • @Overrided

  • @Deprecated

  • @SuppressWarnings

  四种元注解:

  • @Target 表示该注解可以用于什么地方。

  • @Retension 表示需要在什么级别保存该注解信息。

  • @Documented 将此注解包含在Javadoc中。

  • @Inherited 允许子类继承父类中的注解。

1.3 关于注解

  • 注解元素的类型有限制,不可以是任意类型,使用除允许类型以外的类型编译器会报错。

  • 默认值限制:

    @Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface SimulationNull{
        public int id() default -1;    public String description() default "";
    }
    • 首先,元素不能有不确定的值。也就是说,元素必须要么具有默认值,要么在使用注解时提供元素的值。

    • 其次,对于非基本类型的元素,无论是在源代码中声明时,或是在注解接口中定义默认值时,都不能以null

      アノテーションには、通常、特定の値
    • を表すためのいくつかの
  • 要素

    が含まれています。プログラムまたはツールは、注釈を解析して処理するときにこれらの値を利用できます。注釈付き要素はインターフェイス メソッドとまったく同じように見えますが、唯一の違いは、それらの要素に
  • デフォルト値
を指定できることです。要素の種類には制限があります。

要素を持たないアノテーションを

マーカーアノテーションと呼びます。 すべてのアノテーションは annotation

を継承します。
    rrreee
  • 1.2 3 つの標準アノテーションと 4 つのメタアノテーション

    java.lang で定義された 3 つの標準アノテーション:
  • @Overrided

@Deprecated

@SuppressWarnings

4 つのメタアノテーション: 🎜🎜🎜🎜 @Target は、アノテーションが使用できる場所を示します。 🎜🎜🎜🎜@Retension は、注釈情報をどのレベルで保存する必要があるかを示します。 🎜🎜🎜🎜@Documented このアノテーションを Javadoc に含めます。 🎜🎜🎜🎜@Inherited を使用すると、サブクラスが親クラスからアノテーションを継承できるようになります。 🎜🎜🎜🎜1.3 注釈について🎜🎜🎜🎜 注釈要素の型は制限されており、許可された型以外の型を使用すると、コンパイラはエラーを報告します。 🎜🎜🎜🎜デフォルト値の制限: 🎜rrreee🎜
    🎜🎜まず第一に、要素は不定の値を持つことができません。つまり、要素にはデフォルト値があるか、アノテーションを使用するときに要素の値を提供する必要があります。 🎜🎜🎜🎜第二に、非基本型の要素の場合、ソースコードで宣言されている場合でも、アノテーションインターフェイスでデフォルト値が定義されている場合でも、 null をその値として使用することはできません。この制約により、各注釈宣言にはすべての要素が存在し、対応する値を持つため、注釈プロセッサが要素の有無を表現することが困難になります。この制約を回避するには、要素が存在しないことを示す空の文字列や負の数値などのいくつかの特別な値を定義するだけです: 🎜🎜🎜🎜🎜 外部ファイルを生成します。一部のフレームワークでは、ソース コードを操作するために追加情報が必要ですが、この場合、その値を表現するにはアノテーションが最適です。 Enterprise JavaBeans などのテクノロジには、デプロイメント記述ファイルが必要です。 Web サービス、カスタム タグ ライブラリ、およびオブジェクト/リレーショナル マッピング ツール (Toplink や Hibernate など) には通常、XML 記述ファイルが必要であり、これらの記述ファイルはソース コードから分離されています。 🎜🎜🎜🎜2 注釈プロセッサの作成🎜🎜 注釈を使用するプロセスの重要な部分は、注釈🎜を読み取るために使用される🎜🎜注釈プロセッサ🎜🎜を作成して使用することです。 🎜🎜🎜🎜リフレクション機構のAPIでアノテーションプロセッサを構築できる🎜🎜🎜🎜外部ツールaptでアノテーション付きのJavaソースコードを解析できる🎜🎜🎜🎜関連記事: 🎜🎜🎜Javaプログラミング思考を学ぶ教室(5)第18章-Java IOシステム🎜🎜🎜🎜Javaプログラミング思考学習教室(6) 第19章 - 列挙型🎜🎜

以上がJavaプログラミング思考学習クラス (7) 第20章 - 注意事項の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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