S.a. Arkadaşlar,
Generics kavramı Türkçeye jenerik olarak geçmiştir ve jenerik olarak kullanmayı tercih edeceğim. Çünkü İngilizce kelimeler ek getirildiği zaman saçma şeyler ortaya çıkıyor ama tabi zorunda kaldığımız zamanlar kullanmaya devam ediyoruz. Peki jenerikler javada ne iş yapar. Önce onu açıklayalım. Javada farklı veri tipleri var bildiğiniz gibi. Bu veri tiplerinin hepsinin aynı çatı altına alınması niyetiyle java 5.0 ile jenerik kavramı ortaya çıkmıştır. Peki tam olarak ne işe yarar. Şöyle açıklayalım daha önce her tip için ayrı ayrı objeler tanımlanırken , jenerikler ile tek tanımlama ile veri tipin ne ise ona göre kullanabiliyoruz.
Generics kavramı Türkçeye jenerik olarak geçmiştir ve jenerik olarak kullanmayı tercih edeceğim. Çünkü İngilizce kelimeler ek getirildiği zaman saçma şeyler ortaya çıkıyor ama tabi zorunda kaldığımız zamanlar kullanmaya devam ediyoruz. Peki jenerikler javada ne iş yapar. Önce onu açıklayalım. Javada farklı veri tipleri var bildiğiniz gibi. Bu veri tiplerinin hepsinin aynı çatı altına alınması niyetiyle java 5.0 ile jenerik kavramı ortaya çıkmıştır. Peki tam olarak ne işe yarar. Şöyle açıklayalım daha önce her tip için ayrı ayrı objeler tanımlanırken , jenerikler ile tek tanımlama ile veri tipin ne ise ona göre kullanabiliyoruz.
public static void main(String[]
args) {
ArrayList<Integer> tcNo = new
ArrayList<Integer>();
ArrayList<String> isim = new
ArrayList<String>();
}
Java 5.0’dan önce her tip için böyle bir tanımla
yapıyorduk. Peki bunun ne gibi dezavantıjı vardı. Bir de ona bakalım. Kod
tekrarını önler mesele. Her defasında sizi yukarıdaki gibi tanımlamalardan
kurtarır. Çalışma anında sizi dönüşümlerden (cast) kurtarır. Kodun bakımın
kolaylaştırır.
Dilimiz döndüğünce jeneric nedir , ne avantajları var
, neden kullanılmalıdır sorularına cevap vermeye çalıştık. Şimdi nasıl
kullanıldığını küçük bir örnekle gösterip , makalemizi tamamlayalım.
package jenerikler;
import java.util.ArrayList;
public class Belge<T> { // T harfi dğeişkendir .
// İsterseniz farklı birşey kullanabilir
private ArrayList<T> belge = new ArrayList<>();
//yukarıdaki ile aynı olmalı
public void ekle(T eleman){ //buradaki de aynı olmalı
this.belge.add(eleman);
}
public ArrayList<T> getirArrayList(){
return this.belge;
}
public static void main(String[] args) {
Belge<String> isim = new Belge<String>();
isim.ekle("Malik Masis");
Belge<Long> tcNo = new Belge<Long>();
tcNo.ekle(12345678998L);
ArrayList<String> isimListe = isim.getirArrayList();
ArrayList<Long> tcListe = tcNo.getirArrayList();
for(int i = 0; i < isimListe.size(); i++){
System.out.println(isimListe.get(i) + " -> " + tcListe.get(i));//ekranda göster
} //for
} //main
} //class
Kaynakça
Hiç yorum yok:
Yorum Gönder