Sto imparando Java. Ho trovato che spesso le espressioni devono essere espresse su un determinato tipo per farlo nel modo giusto. Per esempio, durante la valutazione aritmetica, i byte vengono promossi a numeri interi, quindi la seguente espressione genera un errore:Lettura caratteri in Java
byte b = 10;
int i;
i = b*b; //ok, assigning an integer evaluation to an integer variable
b = b*b; // throws error, coz assigning integer evaluation to byte variable
Ora, io so che l'assegnazione di un numero intero a una variabile carattere è tutto a posto: char a; a = 88;
va bene. Tuttavia, se faccio questo:
char c2 = 'b', c3 = 'c';
c2 = c2 + c3; //throws error
c2 = (char)(c2 + c3); //works fine
Perché genera un errore quando non viene lanciato? Dopo tutto, il lato destro è ancora un numero intero, quindi l'assegnazione di un intero a una variabile di carattere dovrebbe funzionare correttamente.
'88' è un byte, non solo un numero intero –