ADVANCED FEATURES IN JAVA: WILDCARDS AND TYPE CAPTURE EĞİTİMİ

Wildcard ve type capture'ı tam çöz

?, ? extends T, ? super T, PECS kuralı ve capture helper desenini örneklerle ve derleyici hatalarıyla öğrenin.

Java Wildcard ve Type Capture eğitimi 2 günlük uygulamalı programda varyans kavramı, sınırsız wildcard (?), ? extends t, ? super t gibi konuları kapsar. Covariance, contravariance ve invariance kavramlarını örneklerle anlatabilirsiniz.

2 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Wildcard türleri, PECS kuralı ve wildcard capture

Bu eğitim, Java generics'in en zor bölümü olan wildcard'ları ele alır. Sınırsız (?), üst sınırlı (? extends T) ve alt sınırlı (? super T) wildcard'lar; invariance, covariance ve contravariance kavramları; Producer Extends Consumer Super (PECS) kuralı ve Collections.copy, Comparator<? super T> gibi JDK örnekleri işlenir. Wildcard capture (CAP#1) derleyici hata mesajlarının okunması, capture helper metot deseni, jenerik metot ile wildcard arasındaki seçim, wildcard ve type erasure etkileşimi ve API tasarım ilkeleri uygulamalı ele alınır.

Süre ve Format

2 Gün. Her gün dört modül; katılımcılar wildcard türleri konusundan başlayıp pecs ve capture konusuyla tamamlar.

Seviye

İleri Seviye — Jenerik tiplerde wildcard (?), PECS kuralı, alt/üst sınırlı wildcard ve wildcard capture mekanizması.

Öğrenme Metodu

Derleyici hatalarından yola çıkılır; her wildcard hatası analiz edilip PECS ile düzeltilir ve JDK kaynak kodlarındaki imzalar okunur.

Neden Bu Eğitim?

🧭PECS Hakimiyeti

Producer Extends Consumer Super kuralıyla doğru wildcard seçersiniz.

🔧Hata Okuma

capture of ? gibi anlaşılmaz derleyici mesajlarını çözmeyi öğrenirsiniz.

📐API Tasarımı

Esnek ve tip güvenli kütüphane imzaları yazarsınız.

Anahtar Konular

java wildcardpecs javawildcard capturejava generics wildcardextends super javajava type capturelist extends numbercovariance contravariance javajava jenerikjava generics ileri
“Wildcard, tip güvenliğinden ödün vermeden esnek olmanın yoludur.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Java Sözdizimi

Değişken, döngü, metot ve sınıf tanımlayabilecek düzeyde temel Java bilgisi beklenir.

2
Nesne Yönelimli Bilgi

Sınıf, kalıtım, arayüz ve polimorfizm kavramlarına aşinalık faydalıdır.

3
Geliştirme Ortamı

JDK 17 veya üzeri ile IntelliJ IDEA ya da Eclipse kurulu bir bilgisayar gerekir.

4
Komut Satırı

javac, java ve Maven/Gradle ile derleme-çalıştırma adımlarını izleyebilmek yararlıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı, üç wildcard türünü ayırt eder ve okuma/yazma kısıtlarını doğru yorumlar.
Modül 1
Varyans Kavramı
  • Array covariance ve ArrayStoreException
  • Jeneriklerin invariant olması (List<Object> ≠ List<String>)
  • Covariance, contravariance, invariance tanımları
  • Neden wildcard'a ihtiyaç duyulduğu
  • printAll(List<Object>) probleminin çözümü
  • Alt tip ilişkisi şeması: List<? extends Number>
Modül 2
Sınırsız Wildcard (?)
  • List<?> ve List<Object> farkı
  • Yalnızca okuma: elemanlar Object olarak alınır
  • null dışında add edilememesi
  • Eleman tipinden bağımsız metotlar (size, clear, print)
  • Class<?> kullanımı ve reflection
  • Unbounded wildcard ve ham tip farkı
Modül 3
? extends T
  • Üst sınırlı wildcard ile okuma
  • List<? extends Number> üzerinde toplama
  • Neden add yapılamadığı: tip güvenliği
  • Producer rolü
  • Tuple ve Map<String, ? extends Collection<T>> örnekleri
  • extends wildcard ile metot parametresi tasarımı
Modül 4
? super T
  • Alt sınırlı wildcard ile yazma
  • List<? super Integer> içine ekleme
  • Okurken Object elde edilmesi
  • Consumer rolü
  • Comparator<? super T> kullanımı ve nedeni
  • Collections.addAll, Collections.sort imzalarının okunması
Günün hedefiKatılımcı, PECS kuralını uygular ve wildcard capture hatalarını capture helper deseniyle çözer.
Modül 1
PECS Kuralı
  • Producer Extends, Consumer Super kuralının türetimi
  • Collections.copy(dest, src) imzası analizi
  • Hem okuyan hem yazan parametre: wildcard kullanılmaz
  • Stream.map ve forEach imzalarında PECS
  • Dönüş tipinde wildcard kullanmama önerisi
  • PECS ihlali kod inceleme örnekleri
Modül 2
Wildcard Capture
  • capture of ? derleyici hatasının kaynağı
  • Capture dönüşümü (CAP#1) kavramı
  • Swap(List<?>) probleminin yaşanması
  • Capture helper metot deseni
  • Jenerik metot ile capture aynı imzada
  • Capture ve tip çıkarımı etkileşimi
Modül 3
Jenerik Metot mu, Wildcard mı?
  • Aynı imzayı iki yöntemle yazma
  • Tip adına ihtiyaç olduğunda jenerik metot
  • Tek kullanımlı parametrede wildcard sadeliği
  • <T> void copy(List<T>, List<? extends T>) örneği
  • Okunabilirlik ve API belgeleme açısından seçim
  • JDK 17 kaynak kodundan örnek imzalar
Modül 4
İleri Konular ve Tasarım
  • Rekürsif sınır: <T extends Comparable<? super T>>
  • Wildcard ve type erasure ile bridge metotlar
  • Nested wildcard: Map<String, List<? extends Number>>
  • Wildcard ile fluent builder tasarımı
  • Kendi kütüphane API'niz için imza incelemesi
  • Wildcard kullanımı için kontrol listesi

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Varyans Bilgisi

Covariance, contravariance ve invariance kavramlarını örneklerle anlatabilirsiniz.

🧠
Extends Wildcard

? extends T ile güvenli okuma yapan metotlar yazabilirsiniz.

⚙️
Super Wildcard

? super T ile güvenli yazma yapan metotlar tasarlayabilirsiniz.

🔍
PECS Uygulama

Producer Extends Consumer Super kuralıyla doğru imza seçebilirsiniz.

🛠️
Hata Çözümü

capture of ? derleyici hatalarını yorumlayıp giderebilirsiniz.

📈
Capture Helper

Wildcard capture için yardımcı jenerik metot deseni uygulayabilirsiniz.

🧩
JDK İmzaları

Collections ve Stream API imzalarını wildcard açısından okuyabilirsiniz.

🚀
API Tasarımı

Esnek ve tip güvenli kütüphane arayüzleri tasarlayabilirsiniz.

Kimler İçin Uygundur?

  • Java generics'i bilen
  • kütüphane/API tasarlarken wildcard kararlarını doğru vermek isteyen orta-ileri düzey geliştiriciler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Java generics'i bilen ve kütüphane/API tasarlarken wildcard kararlarını doğru vermek isteyen orta-ileri düzey geliştiriciler için uygundur.
PECS kuralı nedir ve eğitimde nasıl öğretilir?
Producer Extends, Consumer Super ilkesi Collections.copy ve Comparator imzaları üzerinden türetilir; her kural derleyici hatasıyla ispatlanarak pekiştirilir.
Bu eğitim için generics bilgisi şart mı?
Evet. Jenerik sınıf, metot ve bounded type kavramlarını bilmek gerekir; gerekirse "Using Generic Type Parameters" eğitimi önce alınabilir.
Eğitim için hangi ön bilgi ve ortam gerekir?
Değişken, döngü, metot ve sınıf tanımlayabilecek düzeyde temel Java bilgisi beklenir. Sınıf, kalıtım, arayüz ve polimorfizm kavramlarına aşinalık faydalıdır. JDK 17 veya üzeri ile IntelliJ IDEA ya da Eclipse kurulu bir bilgisayar gerekir.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir. 2 günlük program boyunca uygulama çalışmalarının tamamlanması beklenir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Advanced Features in Java: Wildcards and Type Capture Eğitim Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
Seviyeİleri Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Java ve JVMJava SE : Modular Design Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE : Modular Design Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Java SE modüler tasarım eğitimi: JPMS, module-info, ServiceLoader, jdeps, jlink ve klasik projeyi modüle geçirme. 2 gün uygulamalı, DVA katılım sertifikası.

Detayları Gör →
Java ve JVMJava SE : More Operations on Member Variables & Methods Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE : More Operations on Member Variables & Methods Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

Java SE üye değişkenler ve metotlar eğitimi: static, final, kapsülleme, overloading, varargs ve başlatma sırası. Uygulamalı 2 gün, DVA katılım sertifikası.

Detayları Gör →
Java ve JVMJava SE : Objects & Classes Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE : Objects & Classes Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

Java SE nesneler ve sınıflar eğitimi: sınıf, yapıcı, kapsülleme, UML ve kütüphane mini projesi. Başlangıç seviyesi, 2 gün uygulamalı, DVA katılım sertifikası.

Detayları Gör →
Java ve JVMJava SE : Programming I Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE : Programming I Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

Java SE Programming I eğitimi: tipler, operatörler, döngüler, metotlar, diziler, String, istisna ve konsol uygulaması. 2 gün uygulamalı, DVA katılım sertifikası

Detayları Gör →
Java ve JVMJava SE : Programming II Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE : Programming II Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Java SE Programming II eğitimi: kalıtım, arayüz, generics, Collections, lambda, Stream API, dosya G/Ç ve JDBC. 2 gün uygulamalı, DVA katılım sertifikası.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn