web-dev-qa-db-ja.com

in Java @記号の意味は?

ドキュメンテーションの目的でコメントでそれが何を意味するか知っていますが、それ以外の意味は何ですか? (私は通常これをグーグルで検索しますが、文字以外の記号はすべて結果に表示されます)

35
ViceVersa666444

@記号は、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 ();

someMethodSuperClassを実行しますか?いいえ。「派生クラス!」と印刷されます。これは、派生クラスには、この@Override thingyがあるためです。したがって、派生クラスオーバーライドスーパークラスのsomeMethod

@SuppressWarningsアノテーション:

メソッドは次のとおりです。

public void someMethod () {
    int i;
}

iは使用されないというコンパイラ警告が表示されます。そのため、メソッドに@SuppressWarningssuppress警告に追加できます。

@SuppressWarnings ("unused")
public void someMethod () {
    int i;
}

@SuppressWarningsアノテーションにはパラメーターがあることに注意してください。一部の注釈にはパラメーターがあり、javadocでそれらを検索できます。ただし、パラメータがない場合は、メソッドのように()を追加する必要はありません。

独自の注釈を宣言し、リフレクションを使用してそれらを確認することもできます。上記の2つの注釈は、コンパイラによってチェックされます。

30
Sweeper

@記号は、Javaアノテーションを指定するために使用されます。

https://en.wikipedia.org/wiki/Java_annotation

組み込みのJavaアノテーションとユーザー定義のカスタムアノテーションがあります。

注釈は、警告の抑制、メソッドのURIへの関連付け(サーブレット)、変数のリソースへの関連付け(JNDI)など、さまざまな方法で使用されます。

9
Abelard Chow

@記号は annotations に使用されます。私の経験では、最も一般的な注釈は@Overrideは、メソッドがスーパークラスで宣言されていることを示します。他の一般的な注釈は@Deprecatedは、メソッドを使用する必要はないが下位互換性のために存在することを示し、@SupressWarnings、警告がコンパイラに表示されないようにします。

コアJavaライブラリに含まれていない注釈を取得し、独自の注釈を宣言することが実際に可能であることに注意してください。

2
Charles Spencer

他の人が示唆しているように、それはJavaの注釈です。コンパイラーがコードを検証し、プログラマーにも通知するのに役立ちます。

非常に簡単なコード例:

public class SomeClass {

    @Override
    public String toString() {
        return "SomeClass";
    }

    @Deprecated
    public void doSomeOperation() {
        // some operation...
    }
}

SomeClass#toStringである@Overrideからの注釈は、クラスObjectへの暗黙的な継承からオーバーライドされた関数であることをコンパイラが判断するのに役立ちます。

SomeClass#doSomeOperationからの注釈は、関数自体が既に非推奨であり、使用を避ける必要があることをプログラマに警告します。

0
mr5

@記号は注釈を示します。これらは、クラス、そのフィールドまたはメソッド(それらが表示される)に関する情報を提供します。彼らは操作を実行できません。コンパイラまたは特別な注釈プロセッサは、この情報を使用して、コードの記述を冗長にします。

Java Persistence APIでは、これらを使用してJavaクラスをデータベーステーブルにマッピングします。

たとえば、@ Table()特定のJavaクラスを日付ベーステーブルにマッピングするために使用されます。

@Entityクラスがエンティティクラスであることを表します。

同様に、個々の列のマッピング、IDの生成、バージョン、関係などの生​​成に多くの注釈を使用できます。

0