-
- 既知のすべてのサブインタフェース:
AsynchronousByteChannel
,AsynchronousChannel
,BaseStream<T,S>
,ByteChannel
,CachedRowSet
,CallableStatement
,Channel
,Clip
,Closeable
,Connection
,DataLine
,DirectoryStream<T>
,DoubleStream
,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
,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
,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
,RemoteExecutionControl
,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
,URLReader
,Writer
,XMLDecoder
,XMLEncoder
,ZipFile
,ZipInputStream
,ZipOutputStream
public interface AutoCloseable
閉じられるまで、リソース(ファイルやソケット・ハンドルなど)を保持できるオブジェクト。AutoCloseable
オブジェクトのclose()
メソッドは、リソース指定ヘッダーでそのオブジェクトが宣言されているtry
-with-resourcesブロックの終了時に自動的に呼び出されます。 この構築によって即時解放が確保され、それ以外の場合に発生する可能性のあるリソース不足例外およびエラーを回避できます。- APIのノート:
AutoCloseableのすべてのサブクラスまたはインスタンスが解放可能なリソースを保持するとは限りませんが、基底クラスがAutoCloseableを実装する可能性があり、実際にそれが一般的です。 完全な普遍性で動作する必要があるコードの場合、または
AutoCloseable
インスタンスがリソースの解放を必要としていることがわかっている場合は、try
-with-resources構築を使用することをお薦めします。 ただし、入出力ベースと非入出力ベースの両方の形式をサポートしている機能(Stream
など)を使用している場合、非入出力ベース形式の使用時は通常try
-with-resourcesブロックは必要ありません。- 導入されたバージョン:
- 1.7
-
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 void
close()
このリソースを閉じ、ベースとなるリソースをすべて解放します。
-
-
-
メソッドの詳細
-
close
void close() throws Exception
このリソースを閉じ、ベースとなるリソースをすべて解放します。 このメソッドは、try
-with-resources文で管理されているオブジェクトで自動的に呼び出されます。このインタフェース・メソッドは
Exception
をスローするように宣言されていますが、実装者には、close
メソッドの具象実装を宣言する際に、より具体的な例外をスローするか、またはクローズ処理で失敗できない場合は例外を一切スローしないことを強くお薦めします。クローズ操作が失敗する可能のあるケースでは、実装者は細心の注意を払う必要があります。 例外をスローする前に、ベースとなるリソースを解放し、リソースをクローズ済みとして内部的にマークすることを強くお薦めします。
close
メソッドが複数回呼び出される可能性は低いため、これによってリソースはタイムリに解放されるようになります。 さらに、リソースが別のリソースをラップするか、別のリソースによってラップされるときに発生する可能性のある問題も減少します。このインタフェースの実装者には、
close
メソッドからInterruptedException
がスローされないようにすることも強くお薦めします。 この例外はスレッドの割込みステータスと相互に作用するので、InterruptedException
が抑制されるとおそらく実行時の誤動作が発生します。 より一般的には、ある例外を抑制すると問題が発生する場合、AutoCloseable.close
メソッドはその例外をスローすべきではありません。Closeable
のclose
メソッドと異なり、このclose
メソッドはべき等である必要はありません。 つまり、このclose
メソッドを複数回呼び出すと何らかの副作用が発生する可能性がありますが、これは、複数回呼び出されても副作用がないことが要求されるCloseable.close
と異なります。 ただし、このインタフェースの実装者には、自身のclose
メソッドをべき等にすることを強くお薦めします。- 例外:
Exception
- このリソースを閉じることができない場合
-
-