为什么Files.newByteChannel没有返回FileChannel?

时间:2012-12-19 10:18:56

标签: java nio

java.nio.file.Files.newByteChannel返回SeekableByteChannel。但是返回的对象的实际类是sun.nio.ch.FileChannelImpl(在我的Java中),所以我可以将它转换为java.nio.channels.FileChannel并将其用作FileChannel。有人知道Files.newByteChannel无法返回FileChannel的原因吗?

1 个答案:

答案 0 :(得分:1)

  

有人知道Files.newByteChannel无法返回FileChannel的原因吗?

FileChannel(抽象类)实现SeekableByteChannel接口。

一般来说,使用object reference of interface代替类是一种好习惯,因为如果我们更改实现,那么我们不需要在任何地方更改代码。