Simple Rechnung produziert einen Fehler, warum?

snowman2

snowman2

Fortgeschrittenes Mitglied
19
Ich habe in meinem code eine ganz simple Rechnung :

Code:
byte a,b;

a = 5;
b = a + 4; // Fehler

In der Additionszeile meldet mir Eclipse "Type mismatch: cannot convert from int to byte". Wo ist dort ein int? Wird "4" als int gehandhabt?
 
Der + Operator ist so spezifiziert: Java Language Spec 4.2.2

Das Ergebnis von + auf numeric types ist immer ein int oder long (oder String :D).

Die Logik dahinter ist, dass ein byte nicht zum Rechnen da ist, sondern ein Topf für 8 bits ist - und dass es eine ziemlich üble Fehlerquelle durch unbeabsichtigte Überläufe ist, wenn es 6 Sorten integers (byte,char,int,"uint",long,"ulong") wie in C gäbe.

EDIT: yay Post #500! :D
 
  • Danke
Reaktionen: snowman2

Ähnliche Themen

S
Antworten
3
Aufrufe
632
swa00
swa00
F
Antworten
0
Aufrufe
832
FlorianAlfredo
F
OnkelLon
Antworten
7
Aufrufe
1.201
thomaspan
thomaspan
Zurück
Oben Unten