为什么ByteArrayOutputStream
不会覆盖OutputStream.write(byte[] b)
方法?它仅覆盖write(byte[] b, int off, int len)
版本的偏移量和长度。
当然,write(byte[] b)
中OutputStream
方法的现有实施只是委托给offset == 0
和len == b.length
的其他方法,因此它“有效”但不是很好因为现在baos.write(byteArray)
被声明为throw IOException
,即使它永远不会抛出这样的异常。
对于实际采用ByteArrayOutputStream
(或者具有IOException
- 免费专用路径(可能通过强制转换)的方法,这意味着您将使用长格式write()
。这不是一个致命的流程 - 但有没有什么理由不让这种方法被覆盖?是否有任何理由在未来的JDK中不会发生(编辑:是的,有充分的理由,请参阅评论)?