最初にこのスニペットを見てください:
public MultiThreadManager( Class<T> c) {
T[] allJobs = (T[]) Array.newInstance( c , MAX_THREAD_SIZE ) ;
for ( int i = 0 ; i < MAX_THREAD_SIZE ; i ++ ) {
allJobs[i] = (T) new Object();
service.submit( allJobs[i] );
getWaitingThreads().add( allJobs[i] );
}
}
例外は次のとおりです。
Exception in thread "main" java.lang.ClassCastException: java.lang.Object cannot be cast to slave.JobTemplate
私がやろうとしていること:
MultiThreadManager のコンストラクターは、Callable を実装するジェネリック型 ( Job.java など) を取る必要があります。これらすべての汎用データ型 ( Job,java ) の配列を作成します。汎用データ型 ( Job.java ) のコンストラクターが実行され、エグゼキューター サービスで実行されるように初期化します。
私のエラーを特定するのを手伝ってください。または、より良い方法を提案してください。
前もって感謝します
ありがとうございました。しかし、物事はもう少し複雑です: Herez その他の情報:
public class Job extends JobTemplate<String> {...details ...}
public abstract class JobTemplate< T > implements Callable<T> {...details..}
そして最後に
MultiThreadManager< Job > threadManager = new MultiThreadManager< Job >( Job.class );
もう一度ありがとう:)