CodeBlanks Logo Icon CodeBlanks

Annotation değerleri

Annotation parametreleri ve varsayılan değerleri öğrenirsin.

value() öğesi ve kısa yazım

Bir annotation'ın value() adlı tek bir öğesi varsa, uygulamada adını yazmadan değer verebilirsin: @Review("iyi"), @Review(value = "iyi") ile eşdeğerdir. Bu kısa yazım yalnızca tek öğe verildiğinde çalışır.

Birden çok öğe verirken adlarını yazmak zorunludur: @Cache(seconds = 60, region = "fast"). Burada seconds ve region öğelerinin sırası önemli değildir; derleyici ad ile eşleştirir. Bu esneklik, ayarların okunaklı yazılmasını sağlar.

Dizi türünde öğeler

Bir öğe dizgi dizisi gibi bir dizi olabilir: String[] tags();. Uygulamada tek değer bile olsa süslü parantezle dizi yazılır: @Tags({"a"}). Birden çok değer virgülle ayrılır: @Tags({"a", "b"}).

Tek öğeli dizi ilkesi de geçerlidir; eğer öğenin adı value ise ve tek değer veriyorsan parantezleri bırakabilirsin: @Tags("a"). Dizi öğeleri kod üretiminde ve yapılandırma çerçevelerinde sık görülür.

Uygulama Cache annotation'ını tanımla ve uygula

Bir @interface Cache tanımla: int seconds() default 30 ve String region() default "primary". Bir load yöntemine @Cache(seconds = 60, region = "fast") ekle. main içinde System.out.println ile Cache ayarlandi yazdır.

Başlangıç kodu

Main.java
// Cache annotation'ını tanımla
// load yöntemine Cache uygula
// main içinde ekrana yazdır

Örnek çözüm

Main.java
@interface Cache {
    int seconds() default 30;
    String region() default "primary";
}

class Service {
    @Cache(seconds = 60, region = "fast")
    void load() { }
}

public class CacheDemo {
    public static void main(String[] args) {
        System.out.println("Cache ayarlandi");
    }
}

Beklenen çıktı

Cache ayarlandi

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir annotation'a value dışında ikinci bir öğe verdiğinde nasıl yazmalısın?

  • Yalnızca değeri yazarak
  • Her öğenin adını açıkça yazarak Doğru cevap
  • default kullanarak
  • Sırayla virgülle ayırarak

Açıklama: Birden çok öğede her birin adı açıkça yazılır.

2 Öğe yazım biçimlerini eşleştir

Kavram Anlamı
@Review("iyi") Tek value kısa yazımı
@Cache(seconds = 60) Adlı öğe
@Tags({"a","b"}) Dizi öğesi
String role() default "x" Varsayılan değer

3 Adlı öğe uygulamasını tamamla

Soru
@Cache(seconds = ____, region = "fast")
Cevap
@Cache(seconds = 60, region = "fast")

Açıklama: int öğeye tırnaksız sayı verilir.

İleri seviye bölümündeki tüm dersler