Ek Açıklamaları Tanımlama: Öğeler ve Varsayılanlar
@interface ile özel ek açıklamalar oluşturun, varsayılan değerlere sahip öğeler tanımlayın ve üst ek açıklamaları uygulayın.
Ek Açıklamaları Tanımlama: Öğeler ve Varsayılanlar, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.
Anotasyonlar Nedir?
Anotasyonlar sınıflara, yöntemlere, alanlara veya parametrelere uygulanan meta verilerdir. Davranışı doğrudan değiştirmezler; derleyicilere, çatılara veya çalışma zamanı işlemcilerine bilgi sağlarlar.
@interface ile Anotasyon Tanımlama
Özel bir anotasyon tanımlamak için @interface kullanın. Öğeler yöntemlere benzer. Varsayılan değer default ile belirtilir.
@interface Retry {
int times() default 3;
long delayMs() default 1000L;
Class<? extends Throwable>[] on() default {Exception.class};
}Anotasyonu Uygulama
Anotasyonu hedefe uygulayın. Varsayılan değerleri olan öğeleri belirtmeyin. Yalnızca bir öğenin adı value olduğunda, değer anahtar belirtilmeden ayarlanabilir.
@Retry(times = 5, delayMs = 500)
public void callExternalService() { ... }
// Single-element shorthand:
@interface Label { String value(); }
@Label("production")
public class App {}Anotasyon Öğe Türleri
Öğeler yalnızca şunlar olabilir: ilkel türler (int, long vb.), String, Class, bir enum, başka bir anotasyon türü veya yukarıdakilerden birinin tek boyutlu dizisi.
@interface Config {
String host();
int port() default 8080;
LogLevel level() default LogLevel.INFO; // enum
Class<?> handler() default DefaultHandler.class;
String[] tags() default {};
}Meta Anotasyonlar: @Retention
@Retention, anotasyonun ne kadar süre saklanacağını denetler: SOURCE (derleyici tarafından atılır), CLASS (.class dosyasında bulunur, çalışma zamanında bulunmaz), RUNTIME (yansıtma yoluyla okunabilir).
@Retention(RetentionPolicy.RUNTIME)
@interface Retry {
int times() default 3;
}Meta Anotasyonlar: @Target
@Target, anotasyonun nerede uygulanabileceğini sınırlar. Birden çok hedef listelenebilir.
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@interface Audited {
String description() default "";
}@Documented ve @Inherited
@Documented, anotasyonu Javadoc'a dahil eder. @Inherited, alt sınıfların anotasyonu üst sınıflarından devralmasına izin verir (yalnızca sınıf düzeyindeki anotasyonlar için).
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@interface Category {
String value();
}@Repeatable Anotasyonları
Bir anotasyonun aynı öğede birden çok kez kullanılmasına izin vermek için onu @Repeatable ile işaretleyin. Bir dizi tutan kapsayıcı anotasyon sağlayın.
@Repeatable(Tags.class)
@interface Tag { String value(); }
@interface Tags { Tag[] value(); }
@Tag("fast")
@Tag("stable")
public class Service {}Varsayılan Değerler ve Öğeleri Atlamа
default değerleri olan öğelerin çağrı noktasında belirtilmesi gerekmez. Varsayılan değeri olmayan öğeler zorunludur.
@Retry // uses defaults: times=3, delayMs=1000
public void action1() {}
@Retry(times=1) // overrides only times; delayMs stays 1000
public void action2() {}Anotasyon mu, İşaretleyici Arayüz mü
İşaretleyici arayüzler (Serializable gibi) instanceof ile denetlenir ve tür bilgisi taşır. Anotasyonlar daha esnektir; meta veri taşır ve öğelere sahip olabilir.
Yaygın Yerleşik Anotasyonlar
JDK anotasyonlarını tanıyın: @Override, @Deprecated, @FunctionalInterface, @SuppressWarnings ve @SafeVarargs.
@Override
public String toString() { return "User{" + name + "}"; }
@Deprecated(since = "2.0", forRemoval = true)
public void oldMethod() {}Kısa Kontrol
Bir anotasyonun çalışma zamanında okunabilir olmasını sağlayan tek saklama politikası hangisidir?
Özet
Anotasyonları @interface ile tanımlayın. Yansıtma tabanlı işleme için @Retention(RUNTIME), kullanımı sınırlamak için @Target ve isteğe bağlı öğeler için default kullanın. @Repeatable anotasyonların art arda kullanılmasına izin verir.
Sıkça Sorulan Sorular
“Ek Açıklamaları Tanımlama: Öğeler ve Varsayılanlar” dersi ücretsiz mi?
Evet — “Ek Açıklamaları Tanımlama: Öğeler ve Varsayılanlar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.
“Ek Açıklamaları Tanımlama: Öğeler ve Varsayılanlar” dersinde ne öğreneceğim?
@interface ile özel ek açıklamalar oluşturun, varsayılan değerlere sahip öğeler tanımlayın ve üst ek açıklamaları uygulayın. Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Java Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Ek Açıklamaları Tanımlama: Öğeler ve Varsayılanlar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Ek Açıklamaları Tanımlama: Öğeler ve Varsayılanlar
- Saklama İlkeleri ve Hedef Türleri
- Çalışma Zamanında Ek Açıklama İşleme
- Derleme Zamanı Ek Açıklama İşleyicileri