7 Ağustos 2019 Çarşamba

@Retention Anotasyonu

Giriş
Şu satırı dahil ederiz.
import java.lang.annotation.Retention;
Açıklaması şöyle. @Target Anotasyonu yazısına bakabilirsiniz.
>Creating an annotation requires two pieces of information: (1) a retention policy and (2) a target.
A retention policy specifies how long, in terms of the program lifecycle, the annotation should be retained for. 
...
The target of an annotation specifies which Java constructs an annotation can be applied to. 
Örnek
Bu arayüzün tanımı şöyledir.
package java.lang.annotation;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
  /**
   * Returns the retention policy.
   * @return the retention policy
   */
  RetentionPolicy value();
}
RetentionPolicy
3 tane değer alır.

1.CLASS
Açıklaması şöyle. Varsayılan (default) değerdir.
Annotations are recorded in the class file generated by the compiler but are not required to be retained by the Java Virtual Machine (JVM) that processes the class file at runtime
2.SOURCE
Açıklaması şöyle. Sadece kaynak kodda bulunur. Java Annotation Processing (APT) plugin'leri tarafından kod işlenerek anotasyonlara göre yeni kod üretilir.
Annotations are discarded by the compiler
3. RUNTIME
Açıklaması şöyle. En geniş değerdir. Hem derleme hem de çalışma esnasında mevcuttur.
Annotations are recorded in the class file by the compiler and retained at runtime by the JVM
Örnek
Şöyle yaparız.
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
public @interface MyAnnotation {
}



Hiç yorum yok:

Yorum Gönder