Generic metot
- Java kursu
- Orta seviye
- Ders 83/116
- 5 dk
<T> ile generic metodu öğrenirsin.
Generic metot
Bir generic metot, kendi tür parametresine sahip metottur. Bildirim static <T> T identity(T value) { return value; } şeklinde yazılır; <T> dönüş türünden önce gelir. Çağrıda türü açıkça vermek gerekmez; derleyici argümandan çıkarım yapar.
Örneğin identity("Merhaba") çağrısı String döndürür, identity(42) çağrısı Integer döndürür. Aynı metot farklı türler için tip-güvenli çalışır. Generic metotlar generic olmayan sınıflarda da tanımlanabilir.
Tür çıkarımı
Java derleyicisi, generic metot çağrısında türü argümandan otomatik çıkarır. identity("Merhaba") yazdığında derleyici T'nin String olduğunu anlar; identity(42) yazdığında Integer olduğunu.
Açıkça belirtmek de mümkündür: Main.<String>identity("Merhaba"). Ancak çoğu durumda bu gereksizdir. Tür çıkarımı sayesinde kod kısa ve okunaklı kalır; yanlış tür verirsen yine derleme hatası alırsın.
Uygulama identity generic metodunu yaz
Bir identity generic metodu tanımla: static <T> T identity(T value) gövdesi return value; olsun. main içinde String s = identity("Merhaba"); ile çağır ve System.out.println(s); ile yazdır.
Başlangıç kodu
// identity generic metodunu tanımla
// main: identity çağrısı ve printlnÖrnek çözüm
public class Main {
static <T> T identity(T value) {
return value;
}
public static void main(String[] args) {
String s = identity("Merhaba");
System.out.println(s);
}
}Beklenen çıktı
Merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Generic metot kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
<T> T identity(T) |
Generic metot imzası |
T identity(T) |
Generic olmayan imza |
return value |
Dönüş değeri |
identity("Merhaba") |
Tür çıkarımıyla çağrı |
2 Generic metotta <T> nerede yazılır?
- Metot gövdesinin sonunda
- Sınıf adından sonra
- Dönüş türünden önce Doğru cevap
- Parametre listesinin altında
Açıklama: <T> dönüş türünden önce gelir; örn. static <T> T identity(T value).
3 Generic metot bildirimini tamamla
static ____ T identity(T value) {
return value;
}
static <T> T identity(T value) {
return value;
}
Açıklama: <T> metoda tür parametresi verir.