java对象转成byte数组,在使用netty进行通信协议传输的场景中是非常常见的。比如,协议有一些定好的协议头、classid,messageid等等信息,还有一个关键的内容是payload。不同的协议内容都会放到payload中,而这个payload往往就是一个byte数组。
那么,如何方便的将一个java对象构造成一个byte数组呢?1 bytebuf填充我们以下面这个对象举例:
public class UgvData implements Serializible{
private static final long serialVersionUID = -219988432063763456L;
//状态码
byte status;
//当前GPS经度
float longitude;
//当前GPS纬度
float latitude;
//行驶速度 单位是 m/s,带一个小数点
float speed;
//当前电量百分比
short batteryPercentage;
//任务编号
long quest;
public byte[] toByteArray() {
ByteBuf buf = Unpooled.buffer(32);
buf.writeByte(this.getSt