经过前面两篇博客的介绍,相信对于 JavaStruct 的认识以及编程使用,读者已经有一定的基础了。只要理解和实践结合起来,掌握还是很容易的。下面进行一些数组使用方面的实例说明及演示。
在结构体类中使用数组有几种方式,可以使用静态指定大小的方式也可以通过使用 ArrayLengthMaker 进行动态分配。数组的大小既可以在类中定义,也可以在定义对象后通过对象进行指定。
静态指定方法
如下所示:
@StructClass
public class ArrayStruct {
@StructField(order = 0)
public byte[] b = new byte[4];
@StructField(order = 1)
public char[] c = new char[2];
@StructField(order = 2)
public short[] s;
@StructField(order = 3)
public int[] i;
}
public void ArraysTest() {
ArrayStruct arr = new ArrayStruct();
Arrays.fill(arr.b, (byte) 1);
Arrays.fill(arr.c, (new String("我")).charAt(0));
arr.s = new short[0];
arr.i = new int[0];
try {
byte[] b = JavaStruct.pack(arr);
for (int i = 0; i < b.length; i++) {
System.out.printf("b[%d]: %d\n", i, b[i]);
}
ArrayStruct arr2 = new ArrayStruct();
arr2.s = new short[0];
arr2.i = new int[0];
JavaStruct.unpack(arr2, b);
System.out.println("arr2.b: " + Arrays.toString