在做Spring定时任务时,遇到了java.lang.NoSuchFieldException: scheduledFutures at java.lang.Class.getDeclaredField(Class.java:1953) 的错误。
代码为:
Field futures = ScheduledTaskRegistrar.class.getDeclaredField("scheduledFutures");
futures.setAccessible(true);
出现这个问题是因为使用的Spring版本不一样导致的。
在Spring 3 中,ScheduledTaskRegistrar 这里的字段应该为scheduledFutures,而在Spring 4 中,这里的字段名称已经变成了 scheduledTasks。因而导致了以上的错误。