public static class DrawingSettings implements ByteObject {
public double r; // red;
public double g; // green;
public double b; // blue;
public double a; // 透明度
public int line_no; // 线号
public int line_width; // 线宽
@Override
public byte[] toBytes() {
ByteBuffer buffer = ByteBuffer.allocate(4 * 8 + 2 * 4);
buffer.order(ByteOrder.LITTLE_ENDIAN);
buffer.putDouble(r);
buffer.putDouble(g);
buffer.putDouble(b);
buffer.putDouble(a);
buffer.putInt(line_no);
buffer.putInt(line_width);
return buffer.array();
}
@Override
public Object toObject(byte[] bytes) {
ByteBuffer buffer = ByteBuffer.wrap(bytes);
buffer.order(ByteOrder.LITTLE_ENDIAN);
this.r = buffer.getDouble(0);
this.g = buffer.getDouble(8);
this.b = buffer.getDouble(16);
this.a = buffer.getDouble(24);
this.line_no = buffer.getInt(32);
this.line_width = buffer.getInt(36);
return this;
}
java 对象 转换成字节数组发送给服务器,根据服务器返回的字节数组自动组装成java对象。
最新推荐文章于 2021-03-19 11:37:02 发布