私は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
これで、文字変数に整数を代入しても問題ないことがわかりました。問題ありませんchar a; a = 88;
。ただし、これを行うと:
char c2 = 'b', c3 = 'c';
c2 = c2 + c3; //throws error
c2 = (char)(c2 + c3); //works fine
キャストされていないときにエラーがスローされるのはなぜですか? 結局、右辺は依然として整数であるため、整数を文字変数に代入することは問題なく機能するはずです。