サーチ…
アノテーションの宣言
アノテーションは、メタデータをコードに付加する手段です。注釈を宣言するには、注釈修飾子をクラスの前に配置します。
annotation class Strippable
注釈はメタアノテーションを持つことができます:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
annotation class Strippable
注釈は他のクラスと同様に、コンストラクタを持つことができます。
annotation class Strippable(val importanceValue: Int)
しかし、他のクラスとは異なり、以下のタイプに制限されています:
- Javaプリミティブ型(Int、Longなど)に対応する型。
- 文字列
- クラス(Foo :: class)
- 列挙型
- その他の注釈
- 上記のタイプの配列
メタ注釈
注釈を宣言するとき、次のメタ注釈を使用してメタ情報を含めることができます。
@Target
:注釈で注釈できる要素(クラス、関数、プロパティ、式など)の可能な種類を指定します。@Retention
は、コンパイルされたクラスファイルに注釈が保存されているかどうか、また、実行時にリフレクションで表示できるかどうかを指定します(デフォルトでは両方ともtrueです)。@Repeatable
は、単一の要素に対して同じアノテーションを複数回使用することを可能にします。@MustBeDocumented
は、アノテーションがパブリックAPIの一部であることを指定し、生成されたAPIドキュメントに示されているクラスまたはメソッドのシグネチャに含める必要があります。
例:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION,
AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
@Retention(AnnotationRetention.SOURCE)
@MustBeDocumented
annotation class Fancy
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow