"És most egy rövid lecke Diego-tól. Röviden és lényegre törően. A referenciatípus-konverziókról."
"Kezdjük az objektumváltozókkal. Egy ilyen változóhoz tetszőleges hivatkozási típust rendelhet ( szélesítő konverzió ). A másik irányú hozzárendeléshez ( szűkítő konverzió ) azonban kifejezetten meg kell jelölni egy cast műveletet:"
Kód | Leírás |
---|---|
|
Tipikus kiszélesedő referencia konverzió |
|
Tipikus szűkítő referencia konverzió |
|
Szélesítő konverzió. |
|
Futtatási hiba! Nem adhat egész szám hivatkozást egy karakterlánc hivatkozáshoz. |
|
Futtatási hiba! Nem adhat egész szám hivatkozást Float hivatkozáshoz. |
|
Átalakítás azonos típusra. Szűkítő referencia konverzió. |
" A szélesítő vagy szűkítő hivatkozáskonverzió semmilyen módon nem változtatja meg az objektumot. A szűkítő (vagy szélesítő) rész kifejezetten arra utal, hogy a hozzárendelési művelet tartalmazza (nem tartalmazza) a változó és az új érték típusellenőrzését. "
"Ez az a ritka példa, ahol minden világos."
" A példákban szereplő hibák elkerülése érdekében módunk van kideríteni, hogy az Object változó milyen típusra hivatkozik : "
int i = 5;
float f = 444.23f;
String s = "17";
Object o = f; // o stores a Float
if (o instanceof Integer)
{
Integer i2 = (Integer) o;
}
else if (o instanceof Float)
{
Float f2 = (Float) o; // This if block will be executed
}
else if (o instanceof String)
{
String s2 = (String) o;
}
"Ezt az ellenőrzést minden bővítő konverzió előtt végre kell hajtania, hacsak nem 100%-ig biztos az objektum típusában."
"Megvan."
GO TO FULL VERSION