Я бы не использовал Date
, но отметки времени, используя -1
для никогда и 0
для немедленного;
public static final long IMMEDIATE = 0;
public static final long NEVER = -1L;
private long expires = NEVER;
интерпретация атрибута должна быть в геттере, например:
public boolean isExpired() {
return (NEVER == expires) ? false : (expires < System.currentTimeMillies());
}
Удаление происходит по той же схеме.
Обновление Я знаю, что 0 и -1 являются действительными временными метками, но поскольку истечение срока и удаление файлов и других ресурсов редко (никогда не говори никогда :-)) происходят в 1970 году или раньше, это полезно постоянная, имхо.