import io.protostuff.runtime.RuntimeSchema;
import io.protostuff.SerializableObjects;
public class User {
private String name;
private int age;
public byte[] serialize() {
User user = this;
LinkedBuffer buffer = LinkedBuffer.allocate(LinkedBuffer.DEFAULT_BUFFER_SIZE);
try {
Schema<User> schema = RuntimeSchema.getSchema(User.class);
return ProtostuffIOUtil.toByteArray(user, schema, buffer);
} finally {
buffer.clear();
}
}
public static User deserialize(byte[] data, Class<User> userClass) {
User user = userClass.newInstance();
Schema<User> schema = RuntimeSchema.getSchema(User.class);
ProtostuffIOUtil.mergeFrom(data, user, schema);
return user;
}
}
public class Main {
public static void main(String[] args) {
User user = new User("John", 25);
byte[] serializedData = user.serialize();
User deserializedUser = User.deserialize(serializedData, User.class);
System.out.println(deserializedUser.getName());
System.out.println(deserializedUser.getAge());
}
}