DEV Community

TANIAOKA, Akihiro
TANIAOKA, Akihiro

Posted on

12章60

このコードのコンパイルエラーは、キャストの型が合わないことによるエラーです。

具体的には、以下の行に問題があります:

String s4 = (String) (s3 + s2);
Enter fullscreen mode Exit fullscreen mode

Javaでは、s3 + s2は数値型の演算であり、その結果はLong型になります。数値型の結果を直接String型にキャストすることはできません。数値を文字列に変換する場合は、以下のようにする必要があります:

String s4 = String.valueOf(s3 + s2);
Enter fullscreen mode Exit fullscreen mode

この変更により、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);
    }
}
Enter fullscreen mode Exit fullscreen mode

このコードは正常にコンパイルされ、実行時に50と出力されます。

Top comments (0)