1. ホーム
  2. java

[解決済み] なぜjavaではIntegerをStringにキャストできないのですか?

2022-02-17 20:48:01

質問

奇妙な例外を発見しました。

java.lang.ClassCastException: java.lang.Integer 
 cannot be cast to java.lang.String

どうしてそんなことが可能なのでしょうか?各オブジェクトはStringにキャストできますよね?

そのコードとは

String myString = (String) myIntegerObject;

ありがとうございます。

どのように解決するのですか?

なぜできないのですか?

StringとIntegerは同じObject階層にないためです。

      Object
     /      \
    /        \
String     Integer

試しているキャスティングは、同じ階層にある場合のみ機能します。

      Object
     /
    /
   A
  /
 /
B

この場合 (A) objB または (Object) objB または (Object) objA が動作します。

したがって、他の人がすでに述べているように、整数を文字列に変換するために使用します。

String.valueOf(integer) または Integer.toString(integer) はプリミティブの場合。

または

Integer.toString() をオブジェクトのために使用します。