【初心者】Java質問・相談スレッド118【歓迎】
at TECH
476:467
08/08/21 23:50:32
レスありがとうございます。
手元の本で関連がありそうな所を漁ると、
(1)
「char(数値を格納した)、short、byteのint以下の範囲の数値を格納する型は、
たとえその型の範囲内の数値でもその式を評価すると全てintになる。」
(例)
byte a=1;
byte b=2;
a+b ←byteの範囲内でもint型
(2)
「short,char,byteのint以下の範囲の数値を格納する型に数値を格納する際、
数値はint型として評価されるが簡略化のためキャストを行わなくても
コンパイラが自動的にキャストする」
(例)
byte a=1; ←コンパイラが自動で(byte)1としてくれるので有効。
この二つの記述があり、それを踏まえてbyte a=1+2は(2)により有効なのですが、
これが467で書いたように変数で行うとコンパイラの自動キャストが働かないのが謎なのです。
もちろん>>473の方が書いてくれたように自分で明示的にキャストすれば通るのですが。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4460日前に更新/268 KB
担当:undef