Annotation değerleri
- Java kursu
- İleri seviye
- Ders 34/82
- 5 dk
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
// Cache annotation'ını tanımla
// load yöntemine Cache uygula
// main içinde ekrana yazdırÖrnek çözüm
@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
@Cache(seconds = ____, region = "fast")
@Cache(seconds = 60, region = "fast")
Açıklama: int öğeye tırnaksız sayı verilir.