問題文: タイマーを持つクラスがあります。
class DeleteTimer {
private Timer timer = new Timer();
private static Timer timerStatic;
public DeleteTimer(Member uid, String serverFilePath, String deleteTime) {
}
public static void start() {
timerStatic.schedule(new TimerTask() {
public void run() {
deleteFolder();
try {
timerStatic.cancel();
} catch (Exception e) {
e.printStackTrace();
}
}
private void deleteFolder() {
//delete a folder
return true;
}
}, 10000);
}
}
いくつかのフォルダを作成するプログラムがあり、しばらくするとそれらのフォルダが自動的に削除されるようにしたいと考えています。フォルダーの名前は固定されていないため、このクラスを呼び出すたびに新しいオブジェクトを作成します。
DeleteTimer obj = new DeleteTimer();
obj.start();
これは最初の試みでは問題なくjava.lang.IllegalStateException: Timer already cancelled
動作しますが、新しいオブジェクトを使用して実行しようとすると失敗します。助けてください。