Javaで次の式を見てみましょう。上記の式でJavaで型キャストを実行中にコンパイルエラーが発生する
int temp = -254;
Integer temp2 = (Integer) temp; // compiles because of autoboxing
Integer temp3 = (Integer) -254; // doesn't compile - illegal start of type.
Integer temp4 = (Integer) 10-254; // compiles
Integer temp5 = (Integer) (int) -254; // compiles
Integer temp6 = -254; // compiles
Integer temp7 = (int) -254; // compiles
表現(Integer) -254
が一定-254
が完全Integer
に評価することができていてもコンパイルできないのに対し、なぜこれらの表現(Integer) 10-254
と(int) -254
が有効ですか?