关注嵌套类

时间:2014-04-30 18:50:53

标签: android

我正在研究客户端服务器应用程序,服务器在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();

所以每当我需要一个类包时,我也必须实例化整个上层类......

我想知道这将产生什么后果,这将如何影响应用程序的性能以及明智的替代性能是什么?

1 个答案:

答案 0 :(得分:1)

如果将嵌套类设为静态,则可以在没有外部类实例的情况下对其进行实例化。此外,用于实例化嵌套类的语法不正确,它应该是

new clsAllPackets.clsCommunicatorPacket();