如何知道当前是否有任何预定的timers?
有TimerQueue来管理计时器队列,但是所有的东西都是私有的或包私有的。
谢谢。
最佳答案
有TimerQueue来管理Timers队列,但是所有东西都是私有的或包私有的。
访问修饰符不会停止reflection。因此,您可以执行以下操作:
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。