最近做一个将对象转换成tcp数据的功能,将对象按一定规律(字节序以及字节数)转换为byte数组,可以分类去解析,但是太麻烦了,代码冗长.决定采取使用一个通用的方法去实现对象转数组的功能
数据类似这种格式
TcpTransfer
transfer object (with annotation ) to tcp byte array
将带有注解的对象转换为tcp协议传输的byte数组
@Retention(RetentionPolicy.RUNTIME){
int order();
int level();
int size();
}
注解意义: level为层级,默认为最高3级,
继承的时候父类level为1,子类为2,子子类为3.
order为当前层级顺序,1为最优先,-1为优先级最低 顺序算法为低层级包裹高层级,
解析A类,假如A类继承自B,那么B类的order为正的字段按升序排列,再迭代考虑A类.再考虑B类Order为负字段,-1为最后,-2为倒数第二.
支持一个类最多约100个字段
size为此int转换为的字节数
对于下面示例:
@Data
public class BasePersonBean {
@EncodeOrderAttribute(level = 1, order = 1, size = 1)
private Integer age;
@EncodeOrderAttribute(level = 1, or