Java 如何知道是否有计划的计时器

Java 如何知道是否有计划的计时器,java,swing,concurrency,awt,Java,Swing,Concurrency,Awt,如何知道当前是否有任何计划 需要管理计时器队列,但所有内容都是私有的或包私有的 谢谢 TimerQueue用于管理计时器队列,但所有内容都是私有的或包私有的 访问修饰符不会停止。因此,您可以执行以下操作: Timer t = new Timer(); TimerQueue tq = (TimerQueue) Timer.class.getField("queue").get(t); boolean isEmpty = (Boolean) TimerQueue.class.getMethod("i

如何知道当前是否有任何计划

需要管理计时器队列,但所有内容都是私有的或包私有的

谢谢

TimerQueue用于管理计时器队列,但所有内容都是私有的或包私有的

访问修饰符不会停止。因此,您可以执行以下操作:

Timer t = new Timer();
TimerQueue tq = (TimerQueue) Timer.class.getField("queue").get(t);
boolean isEmpty = (Boolean) TimerQueue.class.getMethod("isEmpty").invoke(tq);

成员名是从JDK源代码中挖掘出来的。私人资料不打算以这种方式访问,因此这可能随时中断。没有可靠的方法可以做到这一点。很遗憾,
Timer
没有提供这样的API。

注意:TimerQueue不管理java.util.Timer的队列,而是管理javax.swing.Timer的队列。问:你为什么认为你需要这些信息?我想暂停测试执行,直到有任何后台调度任务。