我有一个 ThreadPool 类,它有一个方法 add ,它需要 aRunnable
和若干毫秒作为调度任务:
public static void addScheduler(Runnable r, long millis) {
//scheduling code
//now I want to save it to check later
ScheduledTask st = new ScheduledTask();
st.setTaskType(r.getClass());
st.setFrequency(millis);
persistentes.add(st); //this is an ArrayList<ScheduledTask>
}
现在我想将任务信息存储到一个ArrayList中以供以后检查,但是当我保存任务信息并检查taskType时,它始终是java.lang.Class。我知道这是因为 java 类型擦除,但是有没有办法存储类的类型?
这是我的 ScheduledTask 类:
public class ScheduledTask {
private Class<?> taskType;
private long frequency;
public Class<?> getTaskType() {
return taskType;
}
public void setTaskType(Class<?> taskType) {
this.taskType = taskType;
}
public long getFrequency() {
return frequency;
}
public void setFrequency(long frequency) {
this.frequency = frequency;
}
public String toString(){
return taskType.getClass().getName()+ ": " + (frequency / 1000) + " seg.";
}
}