我正在研究客户端服务器应用程序,服务器在Delphi中,我使用indy并使用打包记录发送/接收数据,在Android端我能够找到一个名为javolution的库,用于转换bytes数组到类表单,这样我就可以轻松地从接收的数据包中读取数据或发送数据。
普通的Packet类看起来像这样:
class clsCommunicatorPacket extends Struct{
Unsigned16 signature = new Unsigned16();
Unsigned32 version = new Unsigned32();
Unsigned8 dataType = new Unsigned8();
Unsigned16 bufferSize = new Unsigned16();
public boolean isPacked() {
return true; // MyStruct is packed.
}
public ByteOrder byteOrder() {
// TopStruct and its inner structs use hardware byte order.
return ByteOrder.nativeOrder();
}
}
到目前为止,一切都正常工作并且没有问题,但是会有超过100种类型的数据包,我需要将它们存储在一个地方,这样我就可以从任何活动中访问/创建它发送/接收。
我在想做的是创建一个类文件,让我们说clsAllPackets,然后将所有数据包类放在该类文件中。
当我需要访问特定的数据包类时,我可以像这样实例化它:
clsCommunicatorPacket Pck = new clsAllPackets().new clsCommunicatorPacket();
所以每当我需要一个类包时,我也必须实例化整个上层类......
我想知道这将产生什么后果,这将如何影响应用程序的性能以及明智的替代性能是什么?
答案 0 :(得分:1)
如果将嵌套类设为静态,则可以在没有外部类实例的情况下对其进行实例化。此外,用于实例化嵌套类的语法不正确,它应该是
new clsAllPackets.clsCommunicatorPacket();