Интерфейс 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— если этот ресурс невозможно закрыть
© 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