1.コメントは何ですか
効果:プログラム自体は、プログラムを説明することができます(これはコメント(コメントが)違いはありません)ではありません。他のプログラム場合があります読んで(コンパイラなど)
フォーマット:「注意名@」コードに存在し、また、いくつかのパラメータを追加することができる
ような:@SuppressWarnings(値=「未チェック」 )
使用する場所 :彼らに余分な補助情報を追加することと同等のものを与えるために、上記のパッケージ、クラス、メソッド、フィールドなどに取り付けることができる、我々はプログラミングの反射を介してこれらのメタデータへのアクセスを実現することができます。
2.内蔵ノート
3内蔵のノート:
@Override -チェック方法は、メソッドをオーバーロードされます。あなたが親クラスつまり、またはメソッドのインターフェースにしていない見つけた場合、コンパイラはエラーを報告します。
@deprecated -時代遅れの方法をマーク。この方法を使用する場合、コンパイラは警告を報告します。表し、それが危険であるか、より良い選択のがあり、通常ので、そのような要素を使用するプログラマを奨励
@SuppressWarningsは-声明で警告ノートを無視するようにコンパイラーに指示します。やや前の2つのコメントに異なるが、あなたは十分に定義されているこれらのパラメータの適切な使用にパラメータを追加する必要があり、私たちの選択を使用します。
@SuppressWarnings( "すべて")
@SuppressWarnings( "未チェック")@SuppressWarnings(値= { "未チェック"、 "廃止"})
public class Test1{
public void main(String[] args) {
test();
toString();
}
//标注这个方法,过时的,或者危险的,不建议使用,但是可以使用!
@Deprecated
public int test(){ //不建议使用
System.out.println("aaaaaa");
return 1;
}
public String hello(){ //没有被使用
List list = new ArrayList<>();
return "hello,world!";
}
@Override //标注了这个注解,就代表子类重写了父类的方法,而且必须保持一致
public String toString() {
return "Test1{}";
}
}
3.元のメモ
メタアノテーションの役割は、他のノート注釈を担当し、Javaは4つの標準のメタ注釈型を定義し、それらを述べ、追加の注釈の種類を提供するために使用されている。
@Target , @Retention , @Documented , @Inherited
@Target:説明する:注釈(すなわちの使用を記述するために使用注釈任意の場所で使用することができます)
@Retention:コメント情報を平準化するもので、保存する必要性を表明し、コメントはのライフサイクル記述するために使用
@Documentを:説明この注釈は、javadocの中に含まれます
@Inherited:説明サブクラスは親クラスを継承することができますこのコメント
public class Test2 {
private int age;
@MyAnnotation
public int getAge() {
return age;
}
}
//如何自定义注解呢? @interface 注解名,注意和 interface的区别
//除了这四个注解之外的所有注解,都叫做自定义注解!
@Target(ElementType.METHOD) //表示我这个注解,能够注解谁! 方法,字段,类
@Retention(RetentionPolicy.RUNTIME) //自定义注解我们都会使用 RetentionPolicy.RUNTIME 在运行时生效
@Documented //表示L可以在Javadoc中生成信息,没什么用!
@Inherited //表示子类可以继承父类的注解,一般也不用!
@interface MyAnnotation{
}
4.カスタム注釈
@interfaceの使用カスタム注釈が自動的にjava.lang.annotation.Annotationインタフェースを継承します
- インタフェースは、コメントを宣言するために使用される@
パブリック@インタフェース定義注釈コンテンツ名} {形式: - その方法のそれぞれは、実際には設定パラメータを宣言しています。
- メソッドの名前は、パラメータの名前です。
- 戻り値の型は、型パラメータ(戻り値のみプリミティブ型、クラス、文字列、列挙型であってもよい)です。
- あなたは、デフォルトでは、パラメータのデフォルト値を宣言することができます
- もしパラメータの唯一のメンバー、一般的なパラメータと呼ばれる値
- 我々は注釈要素を定義するときの注意事項要素は、多くの場合、デフォルト値として空の文字列を使用して、値を持っている必要があります0
public class Test3 {
//注解可以显示赋值,如果没有赋值,我们必须给出注解赋值
@MyAnnotation2(name = "yang",age = 18 ,id = -1,schools = "123")
public void test(){
}
private int age;
@MyAnnotation3("aaa")
public int getAge() {
return age;
}
}
@Target(value={ElementType.METHOD}) //在类上方法上
@Retention(value = RetentionPolicy.RUNTIME)
@interface MyAnnotation2{
String name() default "";
int age() default 0;
int id() default -1; // String indexOf("abc") -1, 找不到,不存在
String[] schools();
}
@Target(value={ElementType.METHOD})
@Retention(value = RetentionPolicy.RUNTIME)
@interface MyAnnotation3{
String[] value(); //只有一个参数的一般名字叫做value, 可以省略!
}