Serializer serializer = new Serializer();
MyObject obj = new MyObject();
byte[] bytes = serializer.encode(obj);
MyObject decodedObj = serializer.decode(bytes);
public class DateEncoder implements Encoder<Date> {
public byte[] encode(Date date) {
}
}
public class DateDecoder implements Decoder<Date> {
public Date decode(byte[] bytes) {
}
}
Serializer serializer = new Serializer()
.withEncoder(Date.class, new DateEncoder())
.withDecoder(Date.class, new DateDecoder());
Serializer serializer = new Serializer();
try {
MyObject obj = serializer.decode(invalidBytes);
} catch (DeserializeException e) {
}
Serializer serializer = new Serializer()
// ...
import io.activej.serializer.SerializerBuilder;
import io.activej.serializer.annotations.Deserialize;
import io.activej.serializer.annotations.Serialize;
import java.io.IOException;
public class MyObject {
@Serialize
private int id;
@Serialize
private String name;
public MyObject() {
}
public MyObject(int id, String name) {
this.id = id;
this.name = name;
}
@Deserialize
public void setId(int id) {
this.id = id;
}
@Serialize
public int getId() {
return id;
}
@Deserialize
public void setName(String name) {
this.name = name;
}
@Serialize
public String getName() {
return name;
}
}
public class Main {
public static void main(String[] args) throws IOException {
SerializerBuilder builder = SerializerBuilder.create();
builder.withSerializer(MyObject.class, (o, buf) -> {
buf.writeInt(o.getId());
buf.writeString(o.getName());
}, buf -> new MyObject(buf.readInt(), buf.readString()));
MyObject obj = new MyObject(1, "ActiveJ");
byte[] bytes = builder.build(MyObject.class).encode(obj);
MyObject decodedObj = builder.build(MyObject.class).decode(bytes);
System.out.println(decodedObj.getId() + " " + decodedObj.getName());
}
}