ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

【Java】エラー「ClassCastException: java.lang.Long cannot be cast to java.lang.Integer」

スポンサードリンク

おっ、エラーがでているお(^ω^ = ^ω^)

// log.priceはLong型で、priceMap.get("price")はint型なのでコンパイルできない
log.price = priceMap.get("price");

んで、修正プログラムを用意したらエラーががが

log.price = Integer.parseInt(priceMap.get("price").toString());

[ClassCastException: java.lang.Long cannot be cast to java.lang.Integer]


いまいちよくわかっていないが、モデル変数のlog.priceがLong型なのが影響しているらしい。



こうしたら治った

log.price = Integer.parseInt(priceMap.get("price").toString());


一度String型にして、そのあとにint型にするといいらしい。よくわかっていないけど、大きな型から小さい型に変換するときは注意すべきだとか。


なぜだろー? 今度調べます。