1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Simple Rechnung produziert einen Fehler, warum?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von snowman2, 13.03.2012.

  1. snowman2, 13.03.2012 #1
    snowman2

    snowman2 Threadstarter Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    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

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    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 bedankt sich.

Diese Seite empfehlen