【发布时间】:2012-02-17 09:37:15
【问题描述】:
假设我们有一个类似结构的 java 类
public class Person {
private int height;
private byte nChildren;
private int salary;
public byte[] serializeField() {
ByteBuffer buf = ByteBuffer.allocate(4 + 1 + 4);
buf.order(ByteOrder.BIG_ENDIAN);
buf.putInt(height);
buf.put(nChildren);
buf.putInt(salary);
return buf.array();
}
/*
* setters and getters
*/
}
是否有一个库可以为任何给定的类自动执行serializeField() 函数?它应该能够保持类中定义的字段的精确顺序,并且可能能够忽略某些字段(如serialVersionUID)。
【问题讨论】:
-
这不就是你通过标记类
Serializable然后向/从对象流写入/读取该对象所得到的吗?字段顺序当然保持不变,可以使用transient忽略字段。如果您希望它完全像您的serializeField()函数那样完成(显式字节顺序,没有关于类的信息),那么您必须自己编写。
标签: java serialization field bytebuffer