Java eclipse byte to int explizite Typumwandlung?
In der Zeile 46 wird ein Fehler angezeigt:
"Type mismatch: cannot convert from int to byte"
Warum geht das nicht so?
k + j => byte + byte ergibt int als Datentyp
Ich führe eine explitze Typumwandlung durch, da k+j einen int ergibt, müsste die Umwandlung doch gehen.
Der (type)-Operator hat Vorrang vor dem + Operator. Ist dies das Problem hier?
Das Type-cast wird zuerst ausfgeführt und schaut sich den Ausdruck k+j an. Dieser ist ein int.
3 Antworten
Die Plus-Operation liefert ein int zurück.
Heißt du musst das Ergebnis der Addition zu einem byte casten, nicht die Zahlen die du addierst (die sind ja sowieso schon byte)
(Ich kenne mich mit Java nicht so sehr sicher aus.)
Aber es müsste (int)(k+j) heißen, denn es soll zuerst addiert werden und dann wieder auf byte heruntergecastet werden.
Nachtrag:
Es muss natürlich (byte)(k+j) heißen.
Danke an FaTech für den Hinweis.
Du schreibst die Antwort schon selbst:
Der (type)-Operator hat Vorrang vor dem + Operator. Ist dies das Problem hier?
Das Type-cast wird zuerst ausfgeführt und schaut sich den Ausdruck k+j an. Dieser ist ein int.
Du konvertierst nur k zu byte (obwohl es das schon ist). Also änderst du nichts.
Wenn Byte + Byte int ergibt, ist es nicht umgewandelt, wenn du es an das byte z zuweist.
Also
byte z = (byte)(k+j)
Achso, also wenn du (int) machst, wird es zum byte? So so 😅 Bitte einmal verbessern :)