Javaでは、Java 5に注釈が導入され、Javaコードのメタ情報を説明するために使用されます。通常、注釈はコードの実行に直接影響しませんが、コードの実行に影響を与えるためにいくつかの注釈を使用できます。
注釈で何ができるか
Javaの注釈は通常、次の役割を果たします
で
注釈の基本
単純なJavaアノテーションは@Entityに似ています。ここで、 @は、これが注釈であることをコンパイラに伝えることを意味します。エンティティは注釈の名前です。通常、ファイルでは、執筆方法は次のとおりです
public @Interfaceエンティティ{
}
注釈要素
Java Annotationsは要素を使用していくつかの値を設定することができ、注釈の要素は属性またはパラメーターに似ています。要素を含む注釈を定義するためのサンプルコード
public @Interfaceエンティティ{
string tableName();
}
要素を含む注釈を使用したサンプルコード
@Entity(TableName = "Vehicles")
上記の注釈の要素名はタブネームで、値セットは車両です。要素のない注釈は、括弧を必要としません。
注釈に複数の要素が含まれている場合、使用方法は次のとおりです
@Entity(tableName = "vericles"、primarykey = "id")
注釈に要素が1つしかない場合、通常はこのように書きます
@insertnew(value = "yes")
しかし、この場合、要素名が値の場合にのみ、それを省略することもできます。つまり、要素名値を入力する必要はありません。効果は次のとおりです。
@insertnew( "yes")
注釈の使用
注釈は、コード内のこれらの要素を変更するために使用できます
使用の完全な例は次のとおりです
@EntityPublic Class Vehicle {@PerSistent Protected String VehicLename = null; @getter public string getVehiclename(){return this.vehiclename; } public void setvehiclename(@optional behiclename){this.vehiclename = vehiclename; } public list addvehiclenametolist(list names){@optional list localnames = names; if(localnames == null){localnames = new ArrayList(); } localnames.add(getVehiclename()); localNamesを返します。 }}組み込みのJavaアノテーション
Javaには、コンパイラに指示を提供するために使用される3つの組み込み注釈があります。彼らです
@Deprecated
クラス、方法、およびプロパティをマークするために使用できます。
上記の3つの要素が使用されなくなった場合は、 @deprecated Annotationを使用します。コードが @deprecated Annotationのクラス、方法、またはプロパティを使用する場合、コンパイラが警告します。
@Deprecatedは、次のように非常に簡単に使用できます。非推奨クラスの注釈。
@DeprecatedPublic Class myComponent {}@deprecated Annotationを使用する場合、対応する @deprecated Javadocシンボルを使用して使用して、このクラス、方法、またはプロパティが廃止され、代替手段が何であるかを説明することをお勧めします。
@deprecated/** @deprecatedこのクラスはバグでいっぱいです。代わりにmynewcomponentを使用します。*/public class myComponent {}@オーバーライド
@Overrideアノテーションは、親クラスを書き換える方法を変更するために使用されます。親クラスがこの注釈をオーバーライドしないメソッドがこの注釈を使用すると、コンパイラがエラーを促します。
実際、@Overideは、サブクラスの親クラスまたはインターフェイスの方法をオーバーライドするために必要ではありません。ただし、この注釈を使用することをお勧めします。場合によっては、親クラスメソッドの名前を変更すると仮定すると、以前に書き直されたサブクラスメソッドは書き直されなくなります。 @Overideがなければ、このサブクラスの方法に気付かないでしょう。この注釈変更により、コンパイラはこの情報を促します。
オーバーライド注釈を使用する例
public class mysuperclass {public void dotheThing(){system.out.println( "do the thing"); }} public class mysubclass extends mysuperclass {@override public void dotheThing(){system.out.println( "違うdo it違う"); }}@suppresswarnings
@suppresswarningsは、コンパイラが警告メッセージの生成を抑制するために使用されます。
変更できる要素は、クラス、メソッド、メソッドパラメーター、属性、およびローカル変数です
使用シナリオ:メソッドが非推奨メソッドを呼び出すか、安全でないタイプの変換を実行すると、コンパイラが警告を生成します。この方法に追加できます
@suppresswarningsアノテーションコンパイラ生成警告を抑制します。
注:@suppresswarningsアノテーションを使用し、近接の原則を採用します。たとえば、メソッドに警告がある場合、メソッドが配置されているクラスに注釈を付けるのではなく、 @SuppressWarningsを使用してこのメソッドに注釈を付けようとします。どちらもコンパイラが警告を生成するのを抑制することができますが、スコープが小さいほど、スコープが大きいため、このクラスの他の方法から警告情報を発見するのに役立ちません。
使用の例
@suppresswarningspublic void methodwithwarning(){}独自の注釈を作成します
Javaでは、独自の注釈、注釈、クラスを作成でき、インターフェイスファイルは独自のファイルで定義されています。次のように
@interface myannotation {string value(); string name(); int age(); string [] newNames();}上記のコードは、4つの要素を持つMyAnnotationと呼ばれる注釈を定義しています。繰り返しますが、キーワード@interfaceは、これが注釈であることをJavaコンパイラに伝えるために使用されます。
よく見ると、注釈要素の定義はインターフェイス法に非常に似ていることがわかります。これらの要素にはタイプと名前があります。これらのタイプは可能です
以下は、アプリカスタムアノテーションです
@myannotation(value = "123"、name = "jakob"、age = 37、newnames = {"jenkov"、 "peterson"})public class myclass {}すべての注釈要素に値を設定する必要があり、誰も欠落していないことに注意してください。
注釈要素デフォルト値
注釈の要素の場合、メソッドを使用して、デフォルト値を設定できます
@interface myannotation {string value()default ""; string name(); int age(); string [] newNames();}上記のコードでは、値要素のデフォルト値を空の文字列に設定します。使用している場合、値を設定することはできません。つまり、値に空の文字列のデフォルト値を使用させます。サンプルコードを使用します
@myannotation(name = "jakob"、age = 37、newNames = {"Jenkov"、 "Peterson"})Public Class MyClass {}@保持
@retentionは、注釈の変更に使用される注釈です。この注釈を使用して、それを行うことができます。
アノテーションがクラスファイルに書き込まれるかどうかを制御して、クラスファイルの注釈が実行時に表示されるかどうかを制御する
制御は簡単です。次の3つの戦略のいずれかを使用してください。
RetentionPolicy.Sourceは、注釈がソースコードにのみ存在すること、存在せず、クラスファイルであり、ランタイム中に表示できないことを示します。一般的な注釈は@Override、@suppresswarningsです。
RetentionPolicy.classこれはデフォルトの注釈保持ポリシーです。この戦略では、.classファイルには注釈が存在しますが、実行時にはアクセスできません。通常、この注釈戦略は、あるバイトコードレベルで動作するために使用されます。
RetentionPolicy.Runtimeは、このポリシーの下で実行時にアクセスできます。多くの場合、私たちは反射と組み合わせて何かをします。
@retentionの使用の例
java.lang.annotation.retention; import java.lang.annotation.retentionPolicy; @retention(retentionPolicy.runtime)@interface {string value()default "";}@ターゲット
@Target Annotationを使用して、カスタムアノテーションによって変更できるJava要素を設定できます。簡単な例
java.lang.annotation.elementType; Import java.lang.annotation.target; @target({elementType.method})public @interface {string value();}上記のコードは、myannotationアノテーションがメソッドのみを変更できることを示しています。
@Targetは、次のようにパラメーター値を選択できます
@inherited
クラスとそのサブクラスに注釈を含める必要がある場合は、@inheritedを使用してこの注釈を変更できます。
java.lang.annotation.inherited@inheritedpublic @interface myannotation {} 12@myannotation -public class mysuperclass {...} 1public class mysubclassはmysuperclass {...}を拡張します上記のコードの一般的な意味はです
1. @inheritedを使用して、注釈を変更します
2。myannotationを使用したMysuperclassの注釈
3. MySuperclassからクラスMySubClass継承を実装します
上記の手順を通して、MySubclassにはmyannotation Annotationもあります。
これらは、Javaの注釈に関するいくつかの基本的な概念です。
上記は、Javaでの注釈の並べ替えです。今後も関連情報を追加し続けます。このサイトへのご支援ありがとうございます!