Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

List&Array支持情况

ray.zh edited this page Dec 2, 2023 · 5 revisions

实际项目使用中, 一般都不仅仅为一个对象的。 而且很多涉及到多个对象进行传递。 所以框架是支持 List & Array 来进行嵌套组合的。

如下类的定义:

@MagicClass(byteOrder = ByteOrder.BIG_ENDIAN)
public class Teacher {
 @MagicField(order = 1)
 private int id;
 @MagicField(order = 3, size = 10)
 private String name;
 @MagicField(order = 5)
 private int phoneSize;
 @MagicField(order = 7, dynamicSizeOf = "phoneSize")
 private long[] phones;
 // setter getter
}

框架关于集合的支持情况如下:

  • 仅支持List&Array
  • 不支持一维以上数组,如int[][]或者 List<List> 容器嵌套
  • 由于String本就不是定长,所以不支持String[]List<String>
  • 支持自定义的数据类型
  • 不支持MAP

关于数组的最佳实践:

  • 涉及到数组最好使用变长, 即协议中携带数组长度数据
  • 如果不是动态数组, 则大小必须指定

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /