Closeable должен использоваться в качестве Java, эквивалентного для IDisposable.NET?

Легкое для понимания и простое решение.

// Save today's date.
var today = DateTime.Today;
// Calculate the age.
var age = today.Year - birthdate.Year;
// Go back to the year the person was born in case of a leap year
if (birthdate.Date > today.AddYears(-age)) age--;

Однако это предполагает, что Вы ищете западный идея возраста и не используете житель Восточной Азии, считающий .

22
задан Daniel Fortunov 21 April 2016 в 05:13
поделиться

1 ответ

Я бы посоветовал вам написать свой собственный интерфейс, особенно с учетом того, что close () генерирует исключение IOException, для которого вам нужно написать код обработки исключений. Затем этот интерфейс может генерировать любые отмеченные исключения, которые подходят для использования, для которого вы хотите поместить интерфейс.

Интерфейсы имеют тенденцию обозначать намерение в сознании читателя, поэтому наличие класса, реализующего интерфейс Closeable, связанный с вводом-выводом, сделает читатель предполагает, что класс также основан на вводе-выводе.

Очевидно, что если объекты, которые вы хотите закрыть , все связаны с вводом-выводом, вы должны использовать Closeable. Но в противном случае используйте

/** Interface for objects that require cleanup post-use. Call dispose() in finally block! */
public interface Disposable {
    public void dispose();
}
14
ответ дан 29 November 2019 в 04:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: