java - 如何避免制作 ByteBuffer 的防御性副本?

标签 java immutability nio

我有一个将 ByteBuffer 作为构造函数参数的类。有没有办法避免制作防御性副本以确保缓冲区在此之后不会被修改?

ByteBuffer.isReadOnly() 不保证原始所有者不会修改缓冲区。更糟糕的是,似乎没有办法将 ByteBuffer 子类化。有什么想法吗?

最佳答案

正如您所说,唯一真正的方法是 buf.asReadOnlyBuffer(),然后将其传递给构造函数。除了这个之外没有其他选择,尽管您可以将内容复制到一个新的 ByteBuffer 中,然后传递它。

关于java - 如何避免制作 ByteBuffer 的防御性副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7637105/

相关文章:

javac对包的识别

python - 实习生如何处理不可变对象(immutable对象)?

java - 如何使用名称访问 Java 中的变量?

java - 被 java NIO Selector.select() 阻塞的线程应该被视为等待还是正在运行

java - 我应该能够在 MS Azure Graph API 中看到动态 DL 吗?

java - Log4j2:如何打印日志中的所有对象参数

java - 如何使用 onRestart() 取消暂停/重启 Android Activity 中的线程?

javascript - Immutable.js:导出到数组时如何保持不变性?

java - 蔚来挂机问题?

java - 使用 NIO,我需要关心 block 边界上的 R/W 吗?