【发布时间】:2013-11-16 20:21:55
【问题描述】:
请先看看这个sn-p:
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 )的构造函数将在执行器服务中运行并执行它们。
请帮我找出我的错误或提出更好的方法。
提前谢谢你
谢谢大家,但事情有点复杂: 这是其他信息:
public class Job extends JobTemplate<String> {...details ...}
public abstract class JobTemplate< T > implements Callable<T> {...details..}
最后
MultiThreadManager< Job > threadManager = new MultiThreadManager< Job >( Job.class );
再次感谢:)
【问题讨论】:
标签: java generics object-initialization