0

Just like the title shows, I couldn't find any clue about it in Javadoc.

4

3 回答 3

4

不,它永远不会。返回 null永远不会有意义,如果您查看实现,它肯定不会。(我意识到依靠文档化的保证通常比实现更好,但我认为没有理由假设它会在这里返回 null。)

特别是,文档指出:

创建一个新分配的字节数组。

返回: 此输出流的当前内容,作为字节数组。

如果它返回null,那将是不正确的,不是吗?

于 2012-04-09T09:11:30.297 回答
0

它会null以一种方式返回;)

ByteArrayOutputStream baos = new ByteArrayOutputStream()
{
    public byte[] toByteArray()
    {
        return null;
    }
};
System.out.println(baos.toByteArray());

输出:

null
于 2012-04-09T09:20:55.133 回答
0

不,它不会。曾经。查看代码 ByteArrayOutputStream.toByteArray:

public synchronized byte toByteArray()[] {
    return Arrays.copyOf(buf, count);
}

Arrays.copyOf:

public static byte[] copyOf(byte[] original, int newLength) {
    byte[] copy = new byte[newLength];
    System.arraycopy(original, 0, copy, 0,
                     Math.min(original.length, newLength));
    return copy;
}
于 2012-04-09T12:08:13.990 回答