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()); } }


上一篇:
下一篇:
切换中文