为什么 Channel 接口要重新定义 close() 方法?
Why Channel interface redefine close() method?
Closeable接口中已经定义了close()方法,为什么Channel还要重新定义?
package java.io;
import java.io.IOException;
public interface Closeable extends AutoCloseable {
public void close() throws IOException;
}
package java.nio.channels;
import java.io.IOException;
import java.io.Closeable;
public interface Channel extends Closeable {
public boolean isOpen();
public void close() throws IOException;
}
很遗憾,您没有复制最重要的部分 - JavaDoc。
Channel#close()
的 JavaDoc 阐明了该方法的许多特定于通道的细节,例如后续操作抛出 ClosedChannelException
,以及当涉及多个线程时该方法的行为方式,特别是阻塞行为。
此外,Channel
早于Closeable
(在 1.4 中引入,Closeable
在 1.5 中引入)并使用该接口进行了改进。
Closeable接口中已经定义了close()方法,为什么Channel还要重新定义?
package java.io;
import java.io.IOException;
public interface Closeable extends AutoCloseable {
public void close() throws IOException;
}
package java.nio.channels;
import java.io.IOException;
import java.io.Closeable;
public interface Channel extends Closeable {
public boolean isOpen();
public void close() throws IOException;
}
很遗憾,您没有复制最重要的部分 - JavaDoc。
Channel#close()
的 JavaDoc 阐明了该方法的许多特定于通道的细节,例如后续操作抛出 ClosedChannelException
,以及当涉及多个线程时该方法的行为方式,特别是阻塞行为。
此外,Channel
早于Closeable
(在 1.4 中引入,Closeable
在 1.5 中引入)并使用该接口进行了改进。