java对象转成byte数组的3种方法-创新互联

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
}

本文题目:java对象转成byte数组的3种方法-创新互联
转载注明:http://cdiso.cn/article/dhogee.html

其他资讯