1. snowman2, 13.03.2012 #1
    snowman2

    snowman2 Threadstarter Erfahrener Benutzer

    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?
     
  2. DieGoldeneMitte, 13.03.2012 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    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
     
    snowman2 gefällt das.