重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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.getStatus()); buf.writeFloat(getLongitude()); buf.writeFloat(getLatitude()); buf.writeFloat(getSpeed()); buf.writeShort(getBatteryPercentage()); buf.writeLong(getQuest()); return buf.array(); } //省略get set }