回答:
@の記号は注釈型の定義を示しています。
意味することはありません、関数修飾子として使用する、など-実際にインタフェースではなく、新しい注釈型@Override。
件名については、このjavadocsエントリを参照してください。
インターフェース:
一般に、インターフェイスは、基礎となる実装の詳細を公開せずにコントラクトを公開します。オブジェクト指向プログラミングでは、インターフェイスは動作を公開する抽象型を定義しますが、ロジックは含みません。実装は、インターフェースを実装するクラスまたはタイプによって定義されます。
@interface:(注釈タイプ)
たくさんのコメントがある以下の例を見てください:
public class Generation3List extends Generation2List {
// Author: John Doe
// Date: 3/17/2002
// Current revision: 6
// Last modified: 4/12/2004
// By: Jane Doe
// Reviewers: Alice, Bill, Cindy
// class code goes here
}
これの代わりに、アノテーション型を宣言できます
@interface ClassPreamble {
String author();
String date();
int currentRevision() default 1;
String lastModified() default "N/A";
String lastModifiedBy() default "N/A";
// Note use of array
String[] reviewers();
}
次に、次のようにクラスに注釈を付けることができます。
@ClassPreamble (
author = "John Doe",
date = "3/17/2002",
currentRevision = 6,
lastModified = "4/12/2004",
lastModifiedBy = "Jane Doe",
// Note array notation
reviewers = {"Alice", "Bob", "Cindy"}
)
public class Generation3List extends Generation2List {
// class code goes here
}
PS: 多くの注釈は、コード内のコメントを置き換えます。
リファレンス:http : //docs.oracle.com/javase/tutorial/java/annotations/declaring.html
interface
キーワードは、Javaでの伝統的なインターフェース・クラスを宣言していることを示しています。キーワードは、新たな注釈型を宣言するために使用されます。 @interface
構文の説明については、注釈に関するdocs.oracleチュートリアルを参照してください。意味の詳細を知りたい場合
は、JLSを参照してください@interface
。
interface:
それを実装するクラスの規約を定義します
@interface:
注釈の規約を定義します
Javaプログラミング言語のインターフェースは、クラスが実装する必要のある動作を指定するために使用される抽象型です。それらはプロトコルに似ています。インターフェイスは、interfaceキーワードを使用して宣言されます
@interface を使用して、独自の(カスタム)Java注釈を作成します。アノテーションは、Javaクラスまたはインターフェースと同様に、独自のファイルで定義されます。カスタムJavaアノテーションの例を次に示します。
@interface MyAnnotation {
String value();
String name();
int age();
String[] newNames();
}
この例では、4つの要素を持つMyAnnotationというアノテーションを定義しています。@interfaceキーワードに注意してください。これは、これがJavaアノテーション定義であることをJavaコンパイラに通知します。
各要素は、インターフェースのメソッド定義と同様に定義されていることに注意してください。データ型と名前があります。すべてのプリミティブデータ型を要素データ型として使用できます。データ型として配列を使用することもできます。複合オブジェクトをデータ型として使用することはできません。
上記のアノテーションを使用するには、次のようなコードを使用できます。
@MyAnnotation(
value="123",
name="Jakob",
age=37,
newNames={"Jenkov", "Peterson"}
)
public class MyClass {
}