言葉のさんぽ道

~気ままに写真とゲームの話題が更新されるはず~

JavaMailのClassCastException

先日、例の保守対応しているPJでClassCastExceptionが発生していると連絡を受ける。もう何年も動いているアプリでClassCastExceptionってあーた…。と色々調べてみた所、JavaMailのgetContentメソッドにビックリな仕様があった。それはメールのContentTypeが「text/plain」とかだとgetContentはString型を返すが、「multipart/alternative」とかだとMimeMultipart型とかが返ってくるらしい。解りにく!・・・そんな仕様、知らなかったぜ・・・。

そんな訳で、JavaMailを使ってる人はgetContentを安易にString型でキャストせずに、適切なキャストを心がけましょう。
(本来はgetContentがObject型で返ってくる事に疑問を抱くべきだったのだけれども)