Интерфейс 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>,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,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,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, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/AutoCloseable.html