ドキュメンテーションの目的でコメントでそれが何を意味するか知っていますが、それ以外の意味は何ですか? (私は通常これをグーグルで検索しますが、文字以外の記号はすべて結果に表示されます)
@記号は、Java注釈。Java注釈が行うことは、変数、メソッド、クラス、インターフェース、または他の言語要素(注釈を宣言するときに設定できます)注釈を何かに追加すると、プログラムの他の部分が何かに注釈があるかどうかを確認できます。 。
例を挙げましょう。
@Override
アノテーション:
public class SuperClass {
public void someMethod () {
System.out.println ("Superclass!");
}
}
public class DerivedClass extends SuperClass {
@Override
public void someMethod () {
System.out.println ("Derived class!");
}
}
そして、これを行うとき:
SuperClass sc = new DerivedClass ();
sc.someMethod ();
someMethod
でSuperClass
を実行しますか?いいえ。「派生クラス!」と印刷されます。これは、派生クラスには、この@Override
thingyがあるためです。したがって、派生クラスオーバーライドスーパークラスのsomeMethod
。
@SuppressWarnings
アノテーション:
メソッドは次のとおりです。
public void someMethod () {
int i;
}
i
は使用されないというコンパイラ警告が表示されます。そのため、メソッドに@SuppressWarnings
をsuppress警告に追加できます。
@SuppressWarnings ("unused")
public void someMethod () {
int i;
}
@SuppressWarnings
アノテーションにはパラメーターがあることに注意してください。一部の注釈にはパラメーターがあり、javadocでそれらを検索できます。ただし、パラメータがない場合は、メソッドのように()
を追加する必要はありません。
独自の注釈を宣言し、リフレクションを使用してそれらを確認することもできます。上記の2つの注釈は、コンパイラによってチェックされます。
@記号は、Javaアノテーションを指定するために使用されます。
https://en.wikipedia.org/wiki/Java_annotation
組み込みのJavaアノテーションとユーザー定義のカスタムアノテーションがあります。
注釈は、警告の抑制、メソッドのURIへの関連付け(サーブレット)、変数のリソースへの関連付け(JNDI)など、さまざまな方法で使用されます。
@記号は annotations に使用されます。私の経験では、最も一般的な注釈は@Override
は、メソッドがスーパークラスで宣言されていることを示します。他の一般的な注釈は@Deprecated
は、メソッドを使用する必要はないが下位互換性のために存在することを示し、@SupressWarnings
、警告がコンパイラに表示されないようにします。
コアJavaライブラリに含まれていない注釈を取得し、独自の注釈を宣言することが実際に可能であることに注意してください。
他の人が示唆しているように、それはJavaの注釈です。コンパイラーがコードを検証し、プログラマーにも通知するのに役立ちます。
非常に簡単なコード例:
public class SomeClass {
@Override
public String toString() {
return "SomeClass";
}
@Deprecated
public void doSomeOperation() {
// some operation...
}
}
SomeClass#toString
である@Override
からの注釈は、クラスObject
への暗黙的な継承からオーバーライドされた関数であることをコンパイラが判断するのに役立ちます。
SomeClass#doSomeOperation
からの注釈は、関数自体が既に非推奨であり、使用を避ける必要があることをプログラマに警告します。
@記号は注釈を示します。これらは、クラス、そのフィールドまたはメソッド(それらが表示される)に関する情報を提供します。彼らは操作を実行できません。コンパイラまたは特別な注釈プロセッサは、この情報を使用して、コードの記述を冗長にします。
Java Persistence APIでは、これらを使用してJavaクラスをデータベーステーブルにマッピングします。
たとえば、@ Table()特定のJavaクラスを日付ベーステーブルにマッピングするために使用されます。
@Entityクラスがエンティティクラスであることを表します。
同様に、個々の列のマッピング、IDの生成、バージョン、関係などの生成に多くの注釈を使用できます。