2011-12-19 23 views
2

現在予定されているtimersがあるかどうかを知る方法?スケジュールされたタイマーがあるかどうかを知る方法

タイマーのキューを管理するにはTimerQueueがありますが、すべてのものはプライベートまたはパッケージプライベートです。

ありがとうございました。

+0

注意:TimerQueueは、java.util.Timerのキューを管理していません。代わりに、javax.swing.Timerのキューを管理しています。 – kleopatra

+0

好奇心:なぜその情報が必要だと思いますか? – kleopatra

+0

@kleopatra、fixed –

答えて

2

Timerのキューを管理するTimerQueueがありますが、すべてのものはプライベートまたはパッケージプライベートです。

アクセス修飾子は停止しません。reflection。メンバー名は、JDKのソースコードから掘った

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

:だからあなたのような何かを行うことができます。プライベートなものはこのようにアクセスするつもりはないので、これはいつでも中断する可能性があります。これを行う堅牢な方法はありません。 TimerがこのようなAPIを提供しないのは残念です。

関連する問題