問題タブ [classcastexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
408 参照

java - 具象クラスで ServiceRegistry コンストラクターが ClassCastException で失敗する

javax.imageio.spi.ServiceRegistryの要求プロセッサを動的に登録するために使用しようとしていますHttpServlet:

私が得るエラーは次のとおりです。

クラスGetStandardCodesProcessorは を実装しIRequestProcessorます。この呼び出しServiceRegistry.lookupProviders()は、ファイルからクラスのリストを取得していますMETA-INF/services/org.confused.servlet.IRequestProcessor。からイテレータを渡す方法についてのニュアンスが欠けているようですServiceRegistry.lookupProviders()

このページは、lookupProviders() からの戻り値を型指定されていない Iterator に代入し、それがServiceRegistryコンストラクターに渡されるにもかかわらず、私が行っていることのほとんどを示しています。そのテクニックは私に同じエラーを与えます。

最後に、問題があれば、これを Eclipse Gallileo (ビルド 20100218-1602) で実行しています。

よろしく、 ドリュー

0 投票する
1 に答える
6904 参照

java - Quartz - java.lang.ClassCastException org.quartz.JobDetail を JobStoreTX で ScheduledJobDetail にキャストできない

私はクォーツ1.6.5を使用しています。最近、Quartz Job Store を RamJobStore から org.quartz.impl.jdbcjobstore.JobStoreTX に移動しました。これ以来、クォーツがジョブを実行しようとするたびに、ログに ClassCastExceptionが表示されるようになりました。

私の Quartz.properties は次のようになります。

次のコードを使用してスケジューラを初期化します org.quartz.Scheduler quartzScheduler = new StdSchedulerFactory("quartz.properties").getScheduler(); 。同じコードは RAMJobStore では機能しますが、JobStoreTX では機能しません。ここで何が欠けているのでしょうか? ログを有効にすると、ログに次のように表示されます。

更新: org.quartz.impl.jdbcjobstore.JobStoreCMT で同じことを試しましたが、同じ問題が解決しません。

0 投票する
4 に答える
5052 参照

java - TreeSet.contains()が機能しないのはなぜですか?

なぜこれは投げるのClassCastExceptionですか?

0 投票する
1 に答える
1043 参照

java - Jboss ClassCastException の問題

ejb2.1 から 3.1 に、jboss を 3.2.1 から最新の Jboss6 マイルストーンに更新する必要があるプロジェクトがあります。プロジェクト構造: ejb-jar(2.1) クラスを指す application.xml を含む ear がありますが、実際のクラスは WEB-INF/classes に格納されています。ここで、jndi を介して ejb をロードするとそれが得られますが、ビジネス インターフェイスでキャストしようとすると ClassCastException が発生します。クラスローダーの問題だと思います。すべてのクラスに対して1つのクラスローダーを使用するようにjboss6をセットアップする方法を誰でも助けてくれますか?

どうも

0 投票する
2 に答える
338 参照

java - 自分自身をTSKILLできるプロセスを作ってみてください

そのため、実行中のプロセスに問題があり、process.destroy() を使用してプロセスを停止しようとすると、停止しません。

Process を拡張するファイル (ProcessHandler) を作成し、次のことを行います。

したがって、私の問題は、 Process を ProcessHandler に変換して、 destroy() コマンドをオーバーライドして TSKILL 自体にすることです。すべてを行う方法を理解しましたが、上記のようなコードを試すと、ClassCastException が発生します。

これらを互換性を持たせる方法を知っている人は誰でもいます。ところで、exec(String) コマンドは Process のインスタンスを返します。

0 投票する
2 に答える
1340 参照

java - インターフェイスへのクラスのロード

現在取り組んでいるプラットフォーム (JDK 1.3、BD-J) にはかなり制限があります。私が使用したい 1 つの JAR ファイルは、ロード時に自己整合性チェックを実行しようとし、失敗すると操作不能状態になります。なぜこれが起こっているのかを突き止めるのは非常に困難ですが、ほとんどの情報源は、BD-J 構造を介して自分自身を見つけたりアクセスしたりできないため、死ぬことを指摘しています。

これは、ロード時にそれを使用することを除外し、代わりにアプリケーション自体にロードします。これは非常に大きなライブラリなので、ロードされたオブジェクトをそれにキャストして潜在的に使用できるように、かなりの量のインターフェイスを作成する必要があります。ここに私の問題があります。

インターフェースは通常のロード時にロードされ、ライブラリは実行時にロードされ、以前にロードされたインターフェースにキャストされますが、これは問題ですか? ClassCastException を受け取っています

できる限りライブラリのパブリック メソッドに基づいてインターフェイスを作成しましたが、インターフェイスにキャストしようとすると、ClassCastException が発生します。注: すべて正常にロードされ、コンストラクターにアクセスしてメソッド名を読み取ることができます。使用可能にするためにキャストすると、失敗します。

私のプロジェクトとツールキットのインターフェイス パッケージは異なりますが、これは問題ですか?

アイデアが不足しています。見落としているものはありますか?

ありがとう。

0 投票する
3 に答える
11732 参照

java - Maven jaxb codegen 中に DTMManagerDefault を DTMManager にキャストする際の ClassCastException

jaxb2 プラグインを使用して JAXB コード生成を行う Maven ビルドを実行しようとすると、奇妙な問題が発生します (以下のスタックトレースを参照)。私が把握できる最善の方法は、xalan-2.7.1 のものとは異なる JAR からクラスがロードされている DTMManager の実装があることです。ただし、jaxb:generate ゴールの実行に使用されるクラスパスには、DTMManager または DTMManagerDefault を含む xalan-2.7.1.jar が 1 つしかないことを確認しました。そのため、他に何が邪魔をしているのかわかりません。 .

最後のデータ ポイント: ビルドは「スナップショット」プロファイルを指定します。これは実際には、(maven-source-plugin を使用して) ソースを JAR 化し、アーティファクトとして公開するだけです。上記の障害シナリオは、デフォルトに加えてこのプロファイルが指定されている場合にのみ発生します。

Linux x64 (Fedora 13) 上の Sun の 64 ビット JDK 1.6.0_21 で実行されている Maven 2.2.1 を使用しています。「mvn -v」情報については、スタックトレースの下を参照してください。

問題が何であるか、および/またはそれをデバッグする方法についてのアイデアはありますか? これは過去数日間私を悲しませており、現在は進歩を妨げています:(

mvn -v:

0 投票する
9 に答える
25890 参照

android - アクティビティ起動時のアンドロイドクラスキャスト例外

私はアンドロイドで簡単なアクティビティプログラムを持っています。基本的に、クラスはアクティビティを拡張するだけです。しかし、それを開始すると、クラスのコンストラクターで ClassCastException が発生します。コンストラクターも定義されていないため、Activity であるスーパークラスのコンストラクターに含まれている必要があります。

残念ながら、デバッガーは、キャストしようとしているクラスに関する詳細情報を提供しません。

ここにスタックトレースがあります:

そして、runtimeexception を調べると、次のようになります。

detailMessage "Unable to instantiate application com.test.MyApp: java.lang.ClassCastException: com.test.MyApp" (id=830067694464)

唯一のコードは

0 投票する
4 に答える
8189 参照

java - Java foreach ループの ClassCastException

以下のコードで ClassCastException が発生する状況は次のとおりです。

実稼働環境で同様のケースがあり(悪い習慣だと私は知っています)、顧客はコメントの行で ClassCastException を含むログを提供しましたが、再現できないようです。何かご意見は?

foreach を使用する場合、JVM がバックグラウンドでイテレーターを作成することは知っていますが、場合によっては生のイテレーターを作成し、別の場合にはパラメーター化されたイテレーターを作成できますか?

更新:生成されたバイトコードも確認しましたが、Windows では、JDK 1.6.0_21-b07 を使用してチェックキャストが行われませんでした。面白い :)

主な方法は次のとおりです。

答えてくれてありがとう!

更新 2 :独自のコンパイラを使用する Eclipse IDE で誤解を招いたため、実際にはその上のバイトコードはEclipse コンパイラを使用して生成されたものです。Eclipse でコードを手動でコンパイルする方法については、こちらを参照してください。結論として、Eclipse コンパイラーは、プラットフォームに関係なく、場合によっては Sun コンパイラーとは異なるバイトコードを生成します。ここで説明するケースはその 1 つです。

0 投票する
2 に答える
30926 参照

java - Hibernate->ArrayListをSetにキャストできません

私はJavaEEアプリケーションを持っており、Hibernateを使用しています。ドメインオブジェクトでは、Setsを使用する方がよいため、List/ArrayListをSet/HashSetに変更しました。

しかし、私のDao実装では、問題が発生しました。

ここでエラーが発生します:

このエラーを回避するにはどうすればよいですか?

よろしくお願いします。