第17章


ちょうせい

  • Annotation = Metadata
  • java.lang.はannotaionコースと発表した.
  • 宣言時に@(
  • クラスまたはメソッド)を使用する
  • JDK 5から登場
  • コンパイラ
  • に情報を通知する
    指定
  • コンパイル時およびインストール(デプロイ)時のタスク
  • 運転時に個別処理が必要
  • Java言語では,使用するための文法が3つ,文法を宣言するための文法が4つある.
  • 通常使用可能な方法


    @Override

  • メソッドが親を超えたことを明確に宣言
  • サブクラスからoverrideメソッド
  • を容易に理解できる.

    @Deprecated

  • クラスまたはメソッドが使用されなくなった場合、
  • @Depentedタグのメソッドを使用すると、コンパイル時に警告情報
  • が表示されます.
  • は削除され、他の開発者が参照するとコンパイルエラーが発生します.したがって、低互換性を実現するためにDeprentedと宣言されます.
  • @SupressWarnings

  • コンパイラは警告を出すことがありますが、これは無視します.
  • Metanovation

  • 宣言宣言時に
  • を使用

    @Target

  • は、宣言に何を適用するかを宣言するために使用されます.
    ターゲット()カッコで、
  • @Target()に適した値を指定します.
  • @Retention

  • 声明声明声明声明声明声明声明声明声明声明声明声明声明声明声明声明声明声明保留時間
  • かっこで適用範囲を指定
  • @Documented

  • 宣言この宣言に関する情報はJava(API)ドキュメントに含まれる

    @Inherited

  • すべての子クラスが親クラスを使用できることを宣言する方法
  • @interface

  • は、宣言文を宣言するために使用されます.
  • @Targer(ElementType.METHOD) // 이 어노테이션은 메소드에 사용할 수 있다고 지정 
    @Retention(RetentionPolicy.RUNTIME) // 실행시에 이 어노테이션을 참조 
    public @interface UserAnnotation{ // @UserAnnotation으로 어노테이션이 사용 가능 
    	public int number();  // 메소드처럼 어노테이션 안에 선언해 놓으면, 
                                  // 이 어노테이션을 사용할 때 해당 항목에 대한 타입으로 
                                  // 값을 지정 가능하다. 
    	public String text() default "This is first annotation";
           // default 뒤에 있는 값이 이 어노테이션을 사용할 때의 기본값이 된다. 
    }
    public class UserAnnotationSample{
    	@UserAnnotation(number=0)
    	public static void main(String args[]){
    		UserAnnotationSample sample = new UserAnnotationSample();
    	}
    
    	@UserAnnotation(number=1)
    	public void annotationSample1(){}
    	
    	@UserAnnotation(number=2, text="second")
    	public void annotationSample2() {}
    
    	@UserAnnotation(number=3, text="second")
    	public void annotationSample3() {}
    }
  • メソッドを宣言する際には、自家製のメソッドを使用することができる.
    宣言クラスに割り当てられた各メソッドの名前に対応する値をカッコ内に置く必要があります.
  • は継承不可を宣言した.
  • 言語を指定する場合は、コード内部がどのように変換されているかを確認することに慣れたほうがいいです.