Пожалуйста, посмотрите на этот сниппет первый:Java Generic инициализации объекта
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 должен принять общий тип (скажем Job.java), который реализует Callable. Создайте массив всех этих общих типов данных (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);
Опять спасибо :)
Спасибо Робин. Но вещи немного сложнее :) herez Остальное: –
Робин может у вас проверить мои изменения .... Спасибо –