我正在尝试编写一个调度程序类,它可以在某个用户指定的计时器上调度不同的类。我在用
ScheduledExecutorService和
ScheduleAtFixedRate去做日程安排。我正在苦苦挣扎的是如何告诉调度程序要调度哪个Java类。
这样做的想法是调用调度程序,构造函数中将有一些字符串,这将是您想要调度的java类的名称。我在使用上述字符串时有问题
ScheduleAtFixedRate因为它需要一个可运行的。有什么想法或建议吗?
发布于 2015-06-29 14:26:32
假设您有两个类
public class ABC  extends TimerTask{ 
@Override
public void run()
{/*some code*/}
public class XYZ extends TimerTask{
@Override
public void run()
{/*some code*/}
}然后从某个班级
public class ScheduleTheTask{
public static void main(String[] args) {
begin("com.ABC",new Date(),3000);
begin("com.XYZ",new Date(),3000);
}
   public static void begin(String task , Date startTime,long timeInMillisecons)
     {
                Class<?> clazz = Class.forName(task);
//BIG assumption that only TimerTask  subclasses would be passed add a instanceof check
                TimerTask taskObj= (TimerTask)clazz.newInstance();
                setStartTimeAndInterval();
                Timer timer = new Timer();
                timer.scheduleAtFixedRate(taskObj, startTime,timeInMillisecons);
            }
}https://stackoverflow.com/questions/31117970
复制相似问题