この記事では、java に関する関連知識を提供します。主に、アノテーションの基本的な概要、アノテーションの基本的な概要など、アノテーションとメタアノテーションに関連する問題を紹介します。見てみましょう。ぜひ、皆さんのお役に立てれば幸いです。
推奨学習: 「java ビデオ チュートリアル 」
アノテーション (アノテーション) は、メタデータ (メタデータ) とも呼ばれ、JDK1.5 以降のバージョンで導入され、パッケージ、クラス、メソッド、プロパティ、コンストラクターなどのデータ情報を変更および解釈するために使用されます。ローカル変数。これは、ドキュメントの作成、コード内の依存関係の追跡、さらには基本的なコンパイル時のチェックの実行にも使用できます。
アノテーションは「@アノテーション名」のコード内に存在します。アノテーションパラメータの数に応じて、アノテーションをマークアノテーション、単一値アノテーション、完全アノテーションの 3 つのカテゴリに分類できます。注釈の種類。コメントと同様、注釈はプログラム ロジックに影響を与えませんが、コンパイルまたは実行することができ、コードに埋め込まれた補足情報と同等です。
さらに、コード内の注釈がソース コード レベルでのみ存在するか、クラス ファイルまたはランタイム (SOURCE/CLASS/) にも表示できるかをコンパイル時に選択できます。ランタイム)。
JavaSE では、アノテーションを使用する目的は、廃止された関数にマークを付ける、警告を無視するなど、比較的単純です。アノテーションは、Java EE でより重要な役割を占めています。たとえば、アプリケーションのあらゆる側面を構成するために使用され、古いバージョンの Java EE に残っていた煩雑なコードと XML 構成を置き換えます。
#@オーバーライド : メソッドを制限するには、親クラスのメソッドをオーバーライドします。 、 このアノテーションはメソッドにのみ使用できます
@非推奨: 特定のプログラム要素を表すために使用されます ( ###親切### 、 方法など ) 古い@SuppressWarnings
: コンパイラ警告を抑制します##2. コード例
class Son extends Father{ @Override public void play(){} }
注:
@Override は、サブクラスの再生メソッドが親クラスの再生メソッドをオーバーライドすることを示します
ここにが書かれていない場合 @オーバーライド
それでも親クラス ply をオーバーライドします@Override アノテーションを記述すると、コンパイラはメソッドが本当に親クラスをオーバーライドするかどうかを確認します メソッド、本当に書き換えられていればコンパイルは通りますが、書き換えられていない場合はコンパイルエラーになります。
@Override はメソッドのみを変更でき、他のクラス、パッケージ、プロパティなどは変更できません。
@非推奨
@Deprecated class A{ @Deprecated public static int name = 1; @Deprecated public void play(){ } }
注:
廃止されました。使用できないという意味ではありません。推奨されていないだけですが、まだ使用できます。
メソッド、クラス、フィールド、パッケージ、パラメータなどを変更できます。
その機能は、古いバージョンと新しいバージョン間の互換性と移行を実現することです
@
警告を抑制 注意: 关于 SuppressWarnings 作用范围是和你放置的位置相关。比如@SuppressWarnings 放置在 main 方法,那么抑制警告的范围就是 main 通过 @SuppressWarnings 的源码可知,其注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量。 ##▶ メタ アノテーションとは: ## メタ アノテーションは、アノテーションを説明するアノテーションです。メタ アノテーションが付けるアノテーションは、@Override、@Deprecated、## など、前に紹介したアノテーションです。 #@SuppressWarnings ▶ 4 つのメタアノテーション: # Retention: アノテーションの適用範囲、SOURCE、CLASS、RUNTIMEの3種類を指定 アノテーションを使用できる場所を指定 #
▶ 注釈に関する注意事項:
, 注釈はクラスのバイトコード ファイルに存在しますが、実行時に取得できません。 注釈はクラスのバイトコードに存在します。 まず第一に、ライフサイクルの長さ SOURCE ①: 一般に、runtime でアノテーション情報を動的に取得する必要がある場合は、RUNTIME アノテーションのみを使用できます。 ## 補助コードの生成など、一部の前処理操作 ( Butterknife など)、クラス ノートを使用します; ③: いくつかの はアノテーション定義の変更にのみ使用できます。 は @Rentension を使用する場合、これは 値である必要があります。 ##RetentionPolicy.SOURCE: コンパイラーはこれを使用した後、このコメントを直接破棄します。ポリシー。
RetentionPolicy.CLASS: コンパイラーはクラス に注釈を記録します。
ファイル内
.
実行時
Java
プログラム時間
、JVM
注釈は保持されません。これはデフォルト値です。
RetentionPolicy.RUNTIME: コンパイラーはクラス にアノテーションを記録します。
ファイル内
.
実行時
Java
プログラム時間
、JVM
注釈は保持されます
.
プログラムはリフレクションを通じてこのアノテーションを取得できます。
説明: は、アノテーション定義を変更し、変更されたアノテーションを使用して変更できるプログラム要素を指定するために使用されます。 @Target には value という名前のメンバー変数も含まれています。 説明:
#5. 継承されたアノテーション 説明: @SuppressWarnings ("all")
public class word{ }
三、@SuppressWarnings的指定警告类型
关键字
解释
all
抑制所有警告
boxing
抑制与封装/拆装作业相关的警告
cast
抑制与强制转型作业相关的警告
dep-ann
抑制与淘汰注释相关的警告
deprecation
抑制与淘汰的相关警告
fallthrough
抑制与 switch 陈述式中遗漏 break 相关的警告
finally
抑制与未传回 finally 区块相关的警告
hiding
抑制与隐藏变数的区域变数相关的警告
incomplete-switch
抑制与 switch 陈述式(enum case)中遗漏项目相关的警告
javadoc
抑制与 javadoc 相关的警告
nls
抑制与非 nls 字串文字相关的警告
null
抑制与空值分析相关的警告
rawtypes
抑制与使用 raw 类型相关的警告
resource
抑制与使用 Closeable 类型的资源相关的警告
restriction
抑制与使用不建议或禁止参照相关的警告
serial
抑制与可序列化的类别遗漏 serialVersionUID 栏位相关的警告
static-access
抑制与静态存取不正确相关的警告
static-method
宣言される可能性のあるメソッドに関連する警告を抑制します static
#super
スーパー コールを含まない置換メソッドに関連する警告を抑制します
##synthetic-access
内部クラスへの最適化されていないアクセスに関連する警告を抑制します
sync-override
同期メソッドのオーバーライドを抑制します同期失敗の警告
未チェック #unqualified-field-access未チェックのジョブに関連する警告を表示して抑制
失敗したフィールドに関連する警告を抑制するaccess
##unused
未使用および非アクティブ化に関する警告を抑制するコード################## 4. メタ アノテーション
1. 基本的な紹介
チェックイン SuppressWarnings を実行するだけであれば、SOURCE アノテーションを使用できます。
#2. 保持の注釈
#説明:
アノテーション を指定するために使用されます。
保持できる期間。@Rentention には RetentionPolicy 型のメンバー変数が含まれます。
3. ターゲット アノテーション
#4、文書化された注釈
を学習することをお勧めします:「Java ビデオ チュートリアル 」
以上がJava ナレッジポイントの詳細な説明: アノテーションとメタアノテーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。