gpt4 book ai didi

java.io 困境

转载 作者:搜寻专家 更新时间:2023-11-01 02:30:30 28 4
gpt4 key购买 nike

类 java.io.Reader 和 java.io.InputStreamReader 都有具有完全相同签名的读取方法

public int read(char[] charbuf, int offset, int length) throws IOException

现在根据 java 文档,java.io.FileReader 类从上述两个类继承两个这些 read() 方法。

现在 FileReader 扩展了 InputStreamReader,后者进一步扩展了 Reader

(Reader <-- Inputstreamreader <-- FileReader)

并且 read() 在两个类中具有相同的签名,难道不应该是 InputStreamReader 覆盖了 Reader 的 read() 而 FileReader 继承了那个被覆盖的方法吗?或者我在这里遗漏了什么??

此外,FileReader 继承的两个 read() 的功能略有不同(大约一个 block 在等待输入而另一个不等待输入)。

最佳答案

InputStreamReader 中的方法为 Reader 中的抽象 方法提供了实现。 FileReader 不再重写该方法;它只是继承了 InputStreamReader 的实现。

请注意,读取有四个签名:

public int read()
public int read(char[] cbuf, int offset, int length)
public int read(char[] cbuf)
public int read(CharBuffer target)

InputStreamReader 仅覆盖其中的前两个。也许这就是让您感到困惑的原因?

关于java.io 困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10581153/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com