Autoboxing, Unboxing

Kategori: Java , 09 Temmuz 2019 , JanFranco


Bir önceki yazımızda ArrayListlere örnek verirken String sınıfını kullanmıştık. İlkel bir veri tipi olan int değişken tipini kullanırsak hata alırız. Yani şöyle bir kullanımdan bahsediyoruz:


ArrayList<int> list = new ArrayList<>;
Peki biz integer sayılardan oluşan bir ArrayList tanımlayamayacak mıyız? Tanımlayabileceğiz. Aşağıdaki tabloyu göz önüne aldığımızda bir hata almayız:

booelan ---> Boolean
char ------> Character
byte ------> Byte
short -----> Short
int -------> Integer
long ------> Long
float -----> Float
double ----> Double
İlkel veri tiplerinin yukarıdaki referans tiplerine dönüşümüne Autoboxing denir. Eğer bu dönüşüm tersine dönerse buna da Unboxing denir. Örnek üzerinden görelim:

ArrayList<Integer> arraylist = new ArrayList<Integer>();

for(int i=0; i<10; i++){
	arraylist.add(Integer.valueOf(i*4)); // Autoboxing
}

for(int i=0; i<arraylist.size(); i++){
	System.out.println(arraylist.get(i).intValue()); // Unboxing
}
İlk for döngüsünde gördüğümüz Integer.valueOf methodunun kullanımı Java 5 sonrası sürümler için gereksizdir. Java 5 sonrası sürümler için arraylist.add(i*4) yazdığımızda hata almayız. Java arkaplanda bu ilkel int tipini Interger'a otomatik dönüştürür. İkinci for döngüsünde de aynı şeyleri söyleyebiliriz. intValue methodunun kullanımı artık gereksizdir.


Sonraki Yazı: String Class, length, charAt, startsWith, endsWith
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın