分配零容量ByteBuffer

时间:2013-08-14 04:54:17

标签: java nio bytebuffer

有人可以告诉我分配零长度缓冲区的可能目的是什么?

ByteBuffer.allocate(0); // no IllegalArgumentException

为什么设计API的人会这样做?

感谢您的评论和解答。

我希望会有这样的更新。 :)

public abstract class ByteBuffer
    extends Buffer
    implements Comparable<ByteBuffer> {

    public static final ByteBuffer VOID = allocate(0);
}

2 个答案:

答案 0 :(得分:4)

如果您的方法必须返回ByteBuffer并且返回null因任何原因而不合适,但您没有要返回的数据,则返回零长度ByteBuffer将满足这些条件。

答案 1 :(得分:2)

这可以用来实现Null对象设计模式http://en.wikipedia.org/wiki/Null_Object_pattern,类似于Collections.emptyList和其他,创建一个可以重用的不可变对象。