构造函数中的 ByteBuffer.allocate
Posted
技术标签:
【中文标题】构造函数中的 ByteBuffer.allocate【英文标题】:ByteBuffer.allocate within Constructors 【发布时间】:2013-05-31 03:11:09 【问题描述】:在我的代码中,我有一个带有 ByteBuffer 和两个构造函数的类。根据构造函数,我想为 ByteBuffer 分配不同的空间。
ByteBuffer data = ByteBuffer.allocate(1);
1st_constructor(arg1, arg2, arg3)
data = ByteBuffer.allocate(5);
1st_constructor(arg1, arg2)
data = ByteBuffer.allocate(10);
我想知道,这是正确的方法吗?我只在构造函数之外声明了 ByteBuffer,因为我认为这是实例化对象能够访问它的唯一方式(但不确定这是否正确?)
感谢您的帮助。
【问题讨论】:
如果你能确保你所有的构造函数都会创建一个ByteBuffer,那么就没有理由在构造函数之前预先创建它。 【参考方案1】:这是正确的方法:
final ByteBuffer data;
1st_constructor(arg1, arg2, arg3)
data = ByteBuffer.allocate(5);
1st_constructor(arg1, arg2)
data = ByteBuffer.allocate(10);
【讨论】:
【参考方案2】:不知道你为什么有
ByteBuffer data = ByteBuffer.allocate(1);
如上所示将其标记为 final,或者将其移至单独的默认构造函数中(如果这是您的意图)。
【讨论】:
以上是关于构造函数中的 ByteBuffer.allocate的主要内容,如果未能解决你的问题,请参考以下文章