import io.protostuff.LinkedBuffer;
import io.protostuff.ProtostuffIOUtil;
import io.protostuff.Schema;
import io.protostuff.runtime.RuntimeSchema;
public class User {
private int id;
private String name;
// ...
private static final Schema<User> userSchema = RuntimeSchema.getSchema(User.class);
public byte[] serialize() {
final LinkedBuffer buffer = LinkedBuffer.allocate(LinkedBuffer.DEFAULT_BUFFER_SIZE);
byte[] bytes;
try {
bytes = ProtostuffIOUtil.toByteArray(this, userSchema, buffer);
} finally {
buffer.clear();
}
return bytes;
}
public static User deserialize(byte[] bytes) {
User user = userSchema.newMessage();
ProtostuffIOUtil.mergeFrom(bytes, user, userSchema);
return user;
}
}
public class Main {
public static void main(String[] args) {
User user = new User();
user.setId(1);
user.setName("John");
byte[] serializedData = user.serialize();
User deserializedUser = User.deserialize(serializedData);
System.out.println(deserializedUser.getId()); // Output: 1
System.out.println(deserializedUser.getName()); // Output: John
}
}