AutoCloseable - JiyangM/spring GitHub Wiki

对于实现AutoCloseable接口的类的实例,将其放到try后面(我们称之为:带资源的try语句),在try结束的时候,会自动将这些资源关闭(调用close方法)。

public class TempFile implements AutoCloseable {
    private final File file;

    public TempFile(String prefix) throws IOException {
        this.file = File.createTempFile(prefix, "");
    }

    public File getFile() {
        return file;
    }

    @Override
    public void close() {
        file.delete();
    }
}
 try (TempFile srcImage = new TempFile("src-image");
             TempFile destImage = new TempFile("dest-image")) {
}