Java 获得;无法从TriggerBuilder转换<;触发器>;触发;在运行简单的Quratz教程程序时
我不熟悉JavaQuartz调度,一直在尝试从youtube教程运行一个简单的Quartz程序 这是我尝试的代码:Java 获得;无法从TriggerBuilder转换<;触发器>;触发;在运行简单的Quratz教程程序时,java,scheduled-tasks,quartz-scheduler,crontrigger,Java,Scheduled Tasks,Quartz Scheduler,Crontrigger,我不熟悉JavaQuartz调度,一直在尝试从youtube教程运行一个简单的Quartz程序 这是我尝试的代码: public class drive1 { public static void main(String[] args) throws SchedulerException { JobDetail jobDetail = JobBuilder.newJob(Job.class).build(); Trig
public class drive1 {
public static void main(String[] args) throws SchedulerException {
JobDetail jobDetail = JobBuilder.newJob(Job.class).build();
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("SimpleTrigger").startNow();
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
scheduler.scheduleJob(jobDetail, trigger);
}
}
这不断地在第4行给我带来编译错误:
类型不匹配:无法从TriggerBuilder转换为触发器
所以我在第4行尝试了显式类型转换:
Trigger Trigger=(Trigger)TriggerBuilder.newTrigger().withIdentity(“SimpleTrigger”).startNow()代码>
这删除了编译错误,但现在我得到一个运行时异常:
Exception in thread "main" java.lang.ClassCastException: org.quartz.TriggerBuilder cannot be cast to org.quartz.Trigger
at sd.moc.drive1.main(drive1.java:18)
谁能帮我一下吗。
我知道这是一个没有问题的问题,但我对这是一个新手。我相信你需要“构建”触发器。所以你需要改变
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("SimpleTrigger").startNow();
到
太棒了,这似乎解决了问题……但有任何线索说明原因。startNow();正如我所看到的,“.startNow();”还返回“TriggerBuilder”,它再次扩展触发器?TriggerBuilder不扩展触发器本身,它是生成扩展触发器的对象的泛型类型。
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("SimpleTrigger").startNow().build();