Referenciatípus-konverziók – 1

"É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
String s = "mom";
Object o = s; // o stores a String
Tipikus kiszélesedő referencia konverzió
Object o = "mom"; // o stores a String
String s2 = (String) o;
Tipikus szűkítő referencia konverzió
Integer i = 123; // o stores an Integer
Object o = i;
Szélesítő konverzió.
Object o = 123; // o stores an Integer
String s2 = (String) o;
Futtatási hiba!
Nem adhat egész szám hivatkozást egy karakterlánc hivatkozáshoz.
Object o = 123; // o stores an Integer
Float s2 = (Float) o;
Futtatási hiba!
Nem adhat egész szám hivatkozást Float hivatkozáshoz.
Object o = 123f; // o stores a Float
Float s2 = (Float) o;
Á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 :  "

Kód
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;
}
3
Feladat
Java Syntax,  szintlecke
Zárt
Code entry
Your attention, please! Now recruiting code entry personnel for CodeGym. So turn up your focus, let your fingers relax, read the code, and then... type it into the appropriate box. Code entry is far from a useless exercise, though it might seem so at first glance: it allows a beginner to get used to and remember syntax (modern IDEs seldom make this possible).

"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."