24 */ 25 26 package java.lang; 27 28 /** 29 * A resource that must be closed when it is no longer needed. 30 * 31 * @author Josh Bloch 32 * @since 1.7 33 */ 34 public interface AutoCloseable { 35 /** 36 * Close this resource, relinquishing any underlying resources. 37 * This method is invoked automatically by the automatic resource 38 * management block construct. 39 * 40 * <p>Classes implementing this method are strongly encouraged to 41 * be declared to throw more specific exceptions (or no exception 42 * at all, if the close cannot fail). 43 * 44 * @throws Exception if this resource cannot be closed 45 */ 46 void close() throws Exception; 47 } | 24 */ 25 26 package java.lang; 27 28 /** 29 * A resource that must be closed when it is no longer needed. 30 * 31 * @author Josh Bloch 32 * @since 1.7 33 */ 34 public interface AutoCloseable { 35 /** 36 * Close this resource, relinquishing any underlying resources. 37 * This method is invoked automatically by the automatic resource 38 * management block construct. 39 * 40 * <p>Classes implementing this method are strongly encouraged to 41 * be declared to throw more specific exceptions (or no exception 42 * at all, if the close cannot fail). 43 * 44 * <p>Note that unlike the {@link java.io.Closeable#close close} 45 * method of {@link java.io.Closeable}, this {@code close} method 46 * is <em>not</em> required to be idempotent. In other words, 47 * calling this {@code close} method more than once may have some 48 * visible side effect, unlike {@code Closeable.close} which is 49 * required to have no effect if called more than once. 50 * 51 * @throws Exception if this resource cannot be closed 52 */ 53 void close() throws Exception; 54 } |