Spec-Zone.ru › OpenJDK 21

Интерфейс AutoCloseable

Все известные подинтерфейсы:
ArenaPREVIEW, 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>, 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, 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, InflaterInputStream, InflaterOutputStream, InputStream, InputStreamReader, JarFile, JarInputStream, JarOutputStream, JdiDefaultExecutionControl, JdiExecutionControl, JShell, LineNumberInputStream, LineNumberReader, LocalExecutionControl, LogStream, MemoryCacheImageInputStream, MemoryCacheImageOutputStream, MLet, MulticastSocket, ObjectInputStream, ObjectOutputStream, OutputStream, OutputStreamWriter, Pipe.SinkChannel, Pipe.SourceChannel, PipedInputStream, PipedOutputStream, PipedReader, PipedWriter, PrintStream, PrintWriter, PrivateMLet, 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, StructuredTaskScopePREVIEW, StructuredTaskScope.ShutdownOnFailurePREVIEW, StructuredTaskScope.ShutdownOnSuccessPREVIEW, 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, 2023, 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/21/docs/api/java.base/java/lang/AutoCloseable.html

Spec-Zone.ru

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