読者です 読者をやめる 読者になる 読者になる

ITの隊長のブログ

ITの隊長のブログです。いや、まだ隊長と呼べるほどには至っていないけど、日々がんばります。CakePHPとPlayFrameworkを使って仕事しています。最近はAngular2をさわりはじめたお(^ω^ = ^ω^)

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

Java

スポンサードリンク

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

// 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型にするといいらしい。よくわかっていないけど、大きな型から小さい型に変換するときは注意すべきだとか。


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