CodeBlanks Logo Icon CodeBlanks

@interface

@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

Main.java
// Tag annotation'ını tanımla
// Customer sınıfına Tag uygula
// main içinde ekrana yazdır

Örnek çözüm

Main.java
@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

Soru
public @____ Tag { String value() default "empty"; }
Cevap
public @interface Tag { String value() default "empty"; }

Açıklama: @interface ile Tag annotation'ı tanımlanır.

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