Mga conversion na uri ng sanggunian - 1

"At ngayon, isang maikling aral mula kay Diego. Brief and to the point. About reference type conversions."

"Magsimula tayo sa mga variable ng Object. Maaari kang magtalaga ng anumang uri ng sanggunian sa naturang variable ( pagpapalawak ng conversion ). Gayunpaman, upang gawin ang pagtatalaga sa kabilang direksyon ( pagpapaliit ng conversion ), dapat mong tahasang ipahiwatig ang isang operasyon ng cast:"

Code Paglalarawan
String s = "mom";
Object o = s; // o stores a String
Isang karaniwang pagpapalawak ng reference na conversion
Object o = "mom"; // o stores a String
String s2 = (String) o;
Isang tipikal na nagpapaliit na reference na conversion
Integer i = 123; // o stores an Integer
Object o = i;
Pagpapalawak ng conversion.
Object o = 123; // o stores an Integer
String s2 = (String) o;
Error sa runtime!
Hindi ka makakapag-cast ng Integer reference sa isang String reference.
Object o = 123; // o stores an Integer
Float s2 = (Float) o;
Error sa runtime!
Hindi ka makakapag-cast ng Integer reference sa isang Float reference.
Object o = 123f; // o stores a Float
Float s2 = (Float) o;
Conversion sa parehong uri. Isang nagpapaliit na conversion ng sanggunian.

" Ang pagpapalawak o pagpapaliit ng reference na conversion ay hindi nagbabago sa bagay sa anumang paraan. Ang pagpapaliit (o pagpapalawak) na bahagi ay partikular na tumutukoy sa katotohanan na ang pagpapatakbo ng pagtatalaga ay kinabibilangan ng (hindi kasama) ang pagsuri ng uri ng variable at ang bagong halaga nito. "

"Ito ang bihirang halimbawa kung saan malinaw ang lahat."

"Upang maiwasan ang mga error sa mga halimbawang itomayroon kaming paraan upang malaman kung anong uri ang tinutukoy ng Object variable: "

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

"Dapat mong isagawa ang pagsusuring ito bago ang bawat pagpapalawak ng conversion maliban kung 100% sigurado ka sa uri ng bagay."

"Nakuha ko."