Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

java.lang.ClassCastExceptionについて

下記にような処理を行っていますがClassCastExceptionになってしまいます。
どなたか回避方法わかれば教えてください


・ aは"UCeModuleImpl"のオブジェクトで作成されている
   ことを確認していますがIf文に合致しない

・ 9行目の出力で"UCeModuleImpl"で表示されますが
   10行目の"java.lang.ClassCastException"エラーとなります。

1    UCeModule am = null;
2    cookie = CommonsServiceUtil.findUserSessionCookie(req);
3    Object a = cookie.useApplicationModule();
4    if (a instanceof UCeModuleImpl
5            || a instanceof UCeModule) {
6        am = (UCeModuleImpl) a;
7    } else {
8        log.info("a is Other Instance Object.");
9        log.info("a = [" + a.getClass().getName() + "]");
10       am = (UCeModuleImpl) a;
11    }

1

回答

93659

閲覧

1件の回答

評価

0

>aは"UCeModuleImpl"のオブジェクトで作成されているこ
とを確認していますがIf文に合致しない

instanceofが偽になる以上、aはそのクラスのインスタン
スではないのが事実です。「確認している」の一言より、

・ソースのimport文
・上の実行結果のログに出ているaのクラス名
・必要ならaのクラスとUCeModuleImplの継承関係

を実際のものをコピペし正確に事実を提示すべきかと思い
ます。

事実が示されていないととりあえずは以下のようなことを
推測してしまいます。

・上のソースソースで異なるqualified nameで同一の
simple nameのクラスをimportしている。
・単純に綴りの見間違え

失礼ながらこういったサイトではご本人の力量がわからな
いので事実が不足していること自体からの推測で質問者様
の単純ミスということをどうしても疑うことになってしま
うと思うのです。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。