İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

Cast

Bir değerin bir tipten başka bir tipe dönüştürmek.

Java'da tip güvenliği çok sıkı olduğu için, bir değişkene bir değer atandığında onun tipinin değişkenin tipiyle uyumlu olup olmadığı kontrol edilir. Değerle değişken aynı tiptelerse sorun yok. Ancak değişikse, birinden ötekisine atama yapılabilmesi kurallara bağlıdır. Atama yapılırken primitive type'larda veri kaybı olup olmadığına bakılır. Örneğin long'a int atanır (yani 'implicit cast' yapılır), ancak tersi yapılamaz. Bunun için explicit cast gerekir. Cast için parantez içersinde dönüştürülecek tip belirtilir :

	target=(Type) source;

Burada source, target'e explicit cast edilmiştir. Primitive'ler için örnekler

	int i=9;
	long l=i; // Olur
	int j=l; // Olmaz!
	int l=12; 
	ing k=(int) l; // Olur

Class type'ları için cast'in ancak child class'tan base class'a atama otomatik olarak yapılır. Tersini yapmak için explicit cast gerekir. Örneğin String class'ı Object class'ını extend eder. Bu durumda atamalar

	Object o=mystring;
	String s=(String) myobject;

şeklinde yapılmalıdır. Her String bir Object olarak kullanılabilir. Ama her object bir String değildir. Örneğin bir Hashtable'a bir String koyarken cast etmenize gerek yoktur. Ama geri alarıken cast gereklidir. Çünkü Hashtable'e konulan nesnenin String olup olmadığı bilinemez.

	myhashtable.put("mykey","myvalue");
	String value=(String)myhashtable.get("mykey");