@interface
- Java kursu
- İleri seviye
- Ders 32/82
- 5 dk
@interface ile özel annotation tanımlamayı öğrenirsin.
@interface ile annotation tanımlama
Kendi annotation'ını tanımlamak için @interface anahtar sözcüğü kullanılır. Bu, aslında java.lang.annotation.Annotation arayüzünü dolaylı olarak genişleten özel bir türdür.
Örnek: public @interface Review { String value(); }. Parantez içindeki value() bir öğedir; annotation uygulandığında değer alır. Öğeler yöntem gibi yazılır ama derleyici onları alan gibi ele alır. Bir annotation öğesi default değer ile de tanımlanabilir.
Öğe ve varsayılan değer
Bir annotation öğesi bir tür ve bir ad ile yazılır: String role();. Eğer öğeye her zaman değer verilmesini istemiyorsan default ile bir başlangıç değeri verirsin: String role() default "user";.
Bu sayede @Tag annotation'ını @Tag (varsayılan kullanılır) ya da @Tag(role = "admin") (değer verilir) biçiminde uygulayabilirsin. Öğenin türü ilkel tür, dizgi, sınıf, enum, annotation ya da bunların dizileri olabilir.
Uygulama Tag annotation'ını tanımla ve uygula
Bir @interface Tag tanımla: String value() default "empty". Customer sınıfına @Tag("vip") ekle. main içinde System.out.println ile Tag hazir yazdır.
Başlangıç kodu
// Tag annotation'ını tanımla
// Customer sınıfına Tag uygula
// main içinde ekrana yazdırÖrnek çözüm
@interface Tag {
String value() default "empty";
}
@Tag("vip")
class Customer { }
public class TagDemo {
public static void main(String[] args) {
System.out.println("Tag hazir");
}
}Beklenen çıktı
Tag hazir
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Annotation öğelerini eşleştir
| Kavram | Anlamı |
|---|---|
@interface |
Tanım anahtar sözcüğü |
String value() |
Bir öğe |
default |
Öntanımlı değer |
@Review("x") |
Uygulama |
2 Kendi annotation'ını tanımlamak için hangi anahtar sözcük kullanılır?
- interface
- @Annotation
- class
- @interface Doğru cevap
Açıklama: @interface annotation tanımlar; sıradan interface işe yaramaz.
3 @interface tanımını tamamla
public @____ Tag { String value() default "empty"; }
public @interface Tag { String value() default "empty"; }
Açıklama: @interface ile Tag annotation'ı tanımlanır.