Andmetüüpide teisendamine
Üht tüüpi andmete teisendamine teiseks on alati teostatav ühilduvate andmetüüpide korral. Näiteks võib alati muutujale tüüpi long omistada int-tüüpi muutuja väärtus. Küll aga ei saa vahetult omistada byte-tüüpi muutujale double-tüüpi väärtust.
Automaatne tüübiteisendus Javas
See on teostatav kahel tingimusel:
Näiteks int-tüüpi muutujale võib omistada alati byte- või short-tüüpi väärtust, mitte aga boolean- või long-tüüpi
Mitteühilduvate tüüpide teisendamine
Kui andmetüübid on mitteühilduvad, tuleb tüübiteisendusel kasutada tüübiteisenduse operatsiooni:
(lõppväärtuse_tüüp) väärtus
Näiteks
int a; byte b; // ... b = (byte) a;
Kui muutuja a väärtus ületab 256, siis saab b väärtuseks jagatise a/256 jääk. Siin on veel selgitusi ja näiteid
Automaatne tüübiteisendus avaldistes
Avaldiste arvutamisel võib Java vahetulemuste arvutamiseks kasutada pikemaid muutujaid, kui lähteoperandid. Näiteks programmilõigus
byte a = 40; byte b = 50; byte c = 100; int d = a * b / c;
teisendatakse kõigepealt operandid int-tüüpi, alles
seepeale leitakse avaldise väärtus.
Mõneti ootamatult osutub vigaseks ka programmilõik
byte b = 50; b = b * 2; // Ei või omistada int-tüüpi väärtust byte-tüüpi muutujale!
Operandid b ja 2 teisendatakse enne avaldise arvutamist int-tüüpi ja int-tüüpi on ka tulemus! Korrektne oleks
byte b=50; b = (byte)(b*2);
Tüübiteisendused eri tüüpi operandidega avaldiste arvutamisel
Kõik byte ja short-tüüpi muutujad teisendatakse eelnevalt int-tüüpi. Kui täisarvuliste operandidega avaldises vähemalt üks operand on tüüpi long, on ka tulemus tüüpi long. Järgmine prioriteet on tüübil float ja kõrgeim tüübil double. Tüübiteisendusi on demonstreeritud näites