Интерфейс Closeable и идемпотентность

Пытаясь разобраться в разнице между интерфейсами AutoCloseable и Closeable, я узнал, что метод close() в AutoCloseable не обязан быть идемпотентным, а в Closeable обязан.

из документации:

Note that unlike the close method of Closeable, this close method is not required to be
idempotent. In other words, calling this close method more than once may have some visible
side effect, unlike Closeable.close which is required to have no effect if called more than once. 

Как видно из документации, идемпотентность в данном случае означает, что вызов метод более чем одного раза не даёт никаких побочных эффектов.

Так вот, я никак не могу понять каким способом, в данном случае, можно обязать метод быть идемпотентным. В моём представлении, это можно организовать лишь при помощи определения метода, который мы опишем таким образом, что он будет гарантировать идемпотентность. Но в данном случае Closeable, чей метод close() обязан быть идемпотентным, лишь интерфейс, который не предоставляют данный метод по умолчанию.


Ответы (0 шт):