このコードのコンパイルエラーは、キャストの型が合わないことによるエラーです。
具体的には、以下の行に問題があります:
String s4 = (String) (s3 + s2);
Javaでは、s3 + s2
は数値型の演算であり、その結果はLong
型になります。数値型の結果を直接String
型にキャストすることはできません。数値を文字列に変換する場合は、以下のようにする必要があります:
String s4 = String.valueOf(s3 + s2);
この変更により、s3 + s2
の結果を文字列に変換することができます。
修正後のコードは次のとおりです:
public class Sample {
public static void main(String[] args) {
short s1 = 10;
Integer s2 = 20;
Long s3 = (long) s1 + s2;
String s4 = String.valueOf(s3 + s2);
System.out.println(s4);
}
}
このコードは正常にコンパイルされ、実行時に50
と出力されます。
Top comments (0)