Spec-Zone.ru › OpenJDK 25

Интерфейс AutoCloseable

Все известные подинтерфейсы:
Arena, AsynchronousByteChannel, AsynchronousChannel, BaseStream<T,S>, ByteChannel, CachedRowSet, CallableStatement, Channel, Clip, Closeable, Connection, DataLine, DirectoryStream<T>, DoubleStream, EventStream, ExecutionControl, ExecutorService, FilteredRowSet, GatheringByteChannel, ImageInputStream, ImageOutputStream, InterruptibleChannel, IntStream, JavaFileManager, JdbcRowSet, JMXConnector, JoinRowSet, Line, LongStream, MidiDevice, MidiDeviceReceiver, MidiDeviceTransmitter, Mixer, ModuleReader, MulticastChannel, NetworkChannel, ObjectInput, ObjectOutput, Port, PreparedStatement, ReadableByteChannel, Receiver, ResultSet, RMIConnection, RowSet, ScatteringByteChannel, ScheduledExecutorService, SecureDirectoryStream<T>, SeekableByteChannel, Sequencer, SourceDataLine, StandardJavaFileManager, Statement, Stream<T>, StructuredTaskScopePREVIEW<T,R>, SyncResolver, Synthesizer, TargetDataLine, Transmitter, WatchService, WebRowSet, WritableByteChannel
Все известные реализующие классы:
AbstractExecutorService, AbstractInterruptibleChannel, AbstractSelectableChannel, AbstractSelector, AsynchronousFileChannel, AsynchronousServerSocketChannel, AsynchronousSocketChannel, AudioInputStream, BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter, ByteArrayInputStream, ByteArrayOutputStream, CharArrayReader, CharArrayWriter, CheckedInputStream, CheckedOutputStream, CipherInputStream, CipherOutputStream, DatagramChannel, DatagramSocket, DataInputStream, DataOutputStream, Deflater, DeflaterInputStream, DeflaterOutputStream, DigestInputStream, DigestOutputStream, DirectExecutionControl, FileCacheImageInputStream, FileCacheImageOutputStream, FileChannel, FileImageInputStream, FileImageOutputStream, FileInputStream, FileLock, FileOutputStream, FileReader, FileSystem, FileWriter, FilterInputStream, FilterOutputStream, FilterReader, FilterWriter, ForkJoinPool, Formatter, ForwardingJavaFileManager, GZIPInputStream, GZIPOutputStream, HttpClient, HttpExchange, HttpsExchange, ImageInputStreamImpl, ImageOutputStreamImpl, Inflater, InflaterInputStream, InflaterOutputStream, InputStream, InputStreamReader, JarFile, JarInputStream, JarOutputStream, JdiDefaultExecutionControl, JdiExecutionControl, JShell, LineNumberInputStream, LineNumberReader, LocalExecutionControl, LogStream, MemoryCacheImageInputStream, MemoryCacheImageOutputStream, MulticastSocket, ObjectInputStream, ObjectOutputStream, OutputStream, OutputStreamWriter, Pipe.SinkChannel, Pipe.SourceChannel, PipedInputStream, PipedOutputStream, PipedReader, PipedWriter, PrintStream, PrintWriter, ProgressMonitorInputStream, PushbackInputStream, PushbackReader, RandomAccessFile, Reader, Recording, RecordingFile, RecordingStream, RemoteExecutionControl, RemoteRecordingStream, RMIConnectionImpl, RMIConnectionImpl_Stub, RMIConnector, RMIJRMPServerImpl, RMIServerImpl, Scanner, ScheduledThreadPoolExecutor, SctpChannel, SctpMultiChannel, SctpServerChannel, SelectableChannel, Selector, SequenceInputStream, ServerSocket, ServerSocketChannel, Socket, SocketChannel, SSLServerSocket, SSLSocket, StreamingExecutionControl, StringBufferInputStream, StringReader, StringWriter, SubmissionPublisher, ThreadPoolExecutor, URLClassLoader, Writer, XMLDecoder, XMLEncoder, ZipFile, ZipInputStream, ZipOutputStream
public interface AutoCloseable
Объект, который может удерживать ресурсы (например, файловые дескрипторы или дескрипторы сокетов) до своего закрытия. Метод close() объекта AutoCloseable автоматически вызывается при выходе из блока try-с-ресурсами, в спецификации ресурсов которого был объявлен этот объект. Такая конструкция обеспечивает своевременное освобождение ресурсов, предотвращая исключения и ошибки, которые в противном случае могут возникнуть из-за их исчерпания.
Примечание к API:

Базовый класс может реализовывать AutoCloseable, даже если не все его подклассы или экземпляры содержат ресурсы, подлежащие освобождению; на практике это встречается часто. Для кода, который должен работать в самых общих случаях, или если известно, что экземпляр AutoCloseable требует освобождения ресурсов, рекомендуется использовать конструкции try-с-ресурсами. Однако при использовании таких средств, как Stream, поддерживающих как формы с вводом-выводом, так и формы без него, блоки try-с-ресурсами, как правило, не нужны при использовании форм без ввода-вывода.

Начиная с:
1.7

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрывает этот ресурс, освобождая все связанные с ним ресурсы.

Подробное описание методов

close

void close() throws Exception
Закрывает этот ресурс, освобождая все связанные с ним ресурсы. Этот метод автоматически вызывается для объектов, управляемых оператором try-с-ресурсами.
Примечание к API:
Хотя в объявлении этого метода интерфейса указано, что он может выбрасывать Exception, разработчикам настоятельно рекомендуется объявлять конкретные реализации метода close так, чтобы они выбрасывали более конкретные исключения или вообще не выбрасывали исключений, если операция закрытия не может завершиться ошибкой.

Случаи, когда операция закрытия может завершиться ошибкой, требуют особого внимания со стороны разработчиков. Настоятельно рекомендуется освободить связанные ресурсы и внутренне пометить ресурс как закрытый до выбрасывания исключения. Маловероятно, что метод close будет вызван более одного раза, поэтому это обеспечивает своевременное освобождение ресурсов. Кроме того, это уменьшает количество проблем, которые могут возникнуть, если ресурс оборачивает другой ресурс или сам обёрнут другим ресурсом.

Разработчикам этого интерфейса также настоятельно рекомендуется не допускать, чтобы метод close выбрасывал InterruptedException. Это исключение взаимодействует с состоянием прерывания потока, и если InterruptedException будет подавлено, вероятно некорректное поведение во время выполнения. В более общем случае, если подавление исключения может привести к проблемам, метод AutoCloseable.close не должен его выбрасывать.

Обратите внимание: в отличие от метода close интерфейса Closeable, этот метод close не обязан быть идемпотентным. Иными словами, повторный вызов этого метода close может иметь видимый побочный эффект, в отличие от Closeable.close, который при повторном вызове не должен иметь никакого эффекта. Тем не менее разработчикам этого интерфейса настоятельно рекомендуется делать методы close идемпотентными.

Выбрасывает:
Exception — если этот ресурс невозможно закрыть

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, способы обхода проблем и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/AutoCloseable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API