Spec-Zone.ru › OpenJDK 17

Интерфейс AutoCloseable

Все известные подинтерфейсы:
AsynchronousByteChannel, AsynchronousChannel, BaseStream<T,S>, ByteChannel, CachedRowSet, CallableStatement, Channel, Clip, Closeable, Connection, DataLine, DirectoryStream<T>, DoubleStream, EventStream, ExecutionControl, 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, ResourceScope, ResultSet, RMIConnection, RowSet, ScatteringByteChannel, SecureDirectoryStream<T>, SeekableByteChannel, Sequencer, SourceDataLine, StandardJavaFileManager, Statement, Stream<T>, SyncResolver, Synthesizer, TargetDataLine, Transmitter, WatchService, WebRowSet, WritableByteChannel
Все известные реализующие классы:
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, Formatter, ForwardingJavaFileManager, GZIPInputStream, GZIPOutputStream, 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, RMIIIOPServerImpl, RMIJRMPServerImpl, RMIServerImpl, Scanner, SctpChannel, SctpMultiChannel, SctpServerChannel, SelectableChannel, Selector, SequenceInputStream, ServerSocket, ServerSocketChannel, Socket, SocketChannel, SSLServerSocket, SSLSocket, StreamingExecutionControl, StringBufferInputStream, StringReader, StringWriter, SubmissionPublisher, 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, 2021, 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/17/docs/api/java.base/java/lang/AutoCloseable.html

Spec-Zone.ru

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