Konversi jinis referensi - 1

"Lan saiki, pelajaran singkat saka Diego. Brief lan menyang titik. Babagan konversi jinis referensi."

"Ayo miwiti karo variabel Obyek. Sampeyan bisa nemtokake sembarang tipe referensi kanggo variabel kuwi ( widening konversi ). Nanging, kanggo nggawe assignment ing arah liyane ( narrowing konversi ), sampeyan kudu tegas nunjukaké operasi cast: "

Kode Katrangan
String s = "mom";
Object o = s; // o stores a String
A konversi referensi widening khas
Object o = "mom"; // o stores a String
String s2 = (String) o;
A konversi referensi narrowing khas
Integer i = 123; // o stores an Integer
Object o = i;
Widening konversi.
Object o = 123; // o stores an Integer
String s2 = (String) o;
kesalahan Runtime!
Sampeyan ora bisa ngirim referensi Integer menyang referensi String.
Object o = 123; // o stores an Integer
Float s2 = (Float) o;
kesalahan Runtime!
Sampeyan ora bisa ngirim referensi Integer menyang referensi Float.
Object o = 123f; // o stores a Float
Float s2 = (Float) o;
Konversi menyang jinis sing padha. A konversi referensi narrowing.

" A widening utawa narrowing referensi konversi ora ngganti obyek ing sembarang cara. Narrowing (utawa widening) bagean khusus nuduhake kasunyatan sing operasi assignment kalebu (ora kalebu) jinis mriksa saka variabel lan nilai anyar. "

"Iki minangka conto langka sing kabeh wis jelas."

"Kanggo ngindhari kesalahan ing conto ikikita duwe cara kanggo ngerteni jinis apa sing dirujuk dening variabel Obyek: "

Kode
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;
}

"Sampeyan kudu nindakake mriksa iki sadurunge saben konversi widening kajaba sampeyan 100% yakin jinis obyek."

"Ngerti."