-1

close() 方法已经在 Closeable 接口中定义了,为什么 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;

}
4

1 回答 1

2

很遗憾,您没有复制最重要的部分——JavaDoc。

的 JavaDocChannel#close()阐明了该方法的很多特定于通道的细节,例如后续操作 throw ClosedChannelException,以及当涉及多个线程时该方法的行为方式,尤其是阻塞行为。

此外,Channel早于Closeable(在 1.4Closeable和 1.5 中引入)并使用该接口进行了改造。

于 2020-07-21T09:03:42.373 回答