构造函数中的 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的主要内容,如果未能解决你的问题,请参考以下文章

Dart中的构造函数

c++中的构造函数

JavaScript中的构造函数

PowerShell 中的构造函数链接 - 调用同一类中的其他构造函数

Java中的构造函数Constructor怎么用

具体类中的受保护构造函数与抽象类中的公共构造函数