我有一个将 ByteBuffer 作为构造函数参数的类。有没有办法避免制作防御性副本以确保缓冲区在此之后不会被修改?
ByteBuffer.isReadOnly() 不保证原始所有者不会修改缓冲区。更糟糕的是,似乎没有办法将 ByteBuffer 子类化。有什么想法吗?
最佳答案
正如您所说,唯一真正的方法是 buf.asReadOnlyBuffer()
,然后将其传递给构造函数。除了这个之外没有其他选择,尽管您可以将内容复制到一个新的 ByteBuffer
中,然后传递它。
关于java - 如何避免制作 ByteBuffer 的防御性副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7637105/