R
Rechenwerk
Gast
Hallo,
ich frische gerade meine Java-Kenntnisse wieder etwas auf und habe zum Thema Datentypen gleich eine Frage. Bei der Initialisierung von byte, short und char wird ja ein Integer Literal angenommen sofern er in den Wertebereich passt. Soweit so gut, es bleibt aber ein Integer soweit ich verstanden haben, deswegen kann man auch nicht schreiben:
Aber warum geht dann dies hier nicht?
Die Lösung ist ja:
Hat die Addition Vorrang vor dem Casten?
Warum wird nicht bei der Initialisierung von byte, short und char der Typ gleich implizit gecastet?
ich frische gerade meine Java-Kenntnisse wieder etwas auf und habe zum Thema Datentypen gleich eine Frage. Bei der Initialisierung von byte, short und char wird ja ein Integer Literal angenommen sofern er in den Wertebereich passt. Soweit so gut, es bleibt aber ein Integer soweit ich verstanden haben, deswegen kann man auch nicht schreiben:
Java:
byte a = 42;
byte b = 23;
byte c = a + b; // Fehler, da zwei Int unbekannter Größe nicht in ein byte Typ passen.
Aber warum geht dann dies hier nicht?
Java:
byte a = 42;
byte b = 23;
byte c = (byte)a +(byte)b; // Fehler, kann int nicht in byte konvertieren
Die Lösung ist ja:
Java:
byte a = 42;
byte b = 23;
byte c = (byte)(a + b);
Hat die Addition Vorrang vor dem Casten?
Warum wird nicht bei der Initialisierung von byte, short und char der Typ gleich implizit gecastet?