<dependency>
<groupId>com.github.suzp1984</groupId>
<artifactId>boopickle_2.12</artifactId>
<version>1.3.0</version>
</dependency>
groovy
implementation 'com.github.suzp1984:boopickle_2.12:1.3.0'
import java.io.Serializable;
import boopickle.Default;
import boopickle.Pickler;
import boopickle.PicklerRegistry;
import boopickle.picklers.PicklerGenerator;
@Default
@PicklerRegistry(MyJavaObject.class)
public class MyJavaObject implements Serializable {
@Key(0)
public int id;
@Key(1)
public String name;
}
PicklerRegistry.registerPickler(MyJavaObject.class, new MyJavaObjectPickler());
MyJavaObject object = new MyJavaObject();
byte[] bytes = Default.PicklerGenerator.apply().generateBytes(object);
MyJavaObject object = Default.PicklerGenerator.<MyJavaObject>create().generateFromBytes(bytes);
import java.io.Serializable;
import boopickle.Default;
import boopickle.Key;
import boopickle.Pickler;
import boopickle.PicklerRegistry;
import boopickle.picklers.PicklerGenerator;
@Default
@PicklerRegistry(MyJavaObject.class)
public class MyJavaObject implements Serializable {
@Key(0)
public int id;
@Key(1)
public String name;
}
public class MyJavaObjectPickler implements Pickler<MyJavaObject> {
@Override
public void pickle(MyJavaObject obj, PicklerGenerator gen) {
gen.writeInt(obj.id);
gen.writeString(obj.name);
}
@Override
public MyJavaObject unpickle(PicklerRegistry reg, byte[] data, int offset, int length, int version) {
MyJavaObject obj = new MyJavaObject();
obj.id = reg.readInt(data, offset);
return obj;
}
}
public class Main {
public static void main(String[] args) {
PicklerRegistry.registerPickler(MyJavaObject.class, new MyJavaObjectPickler());
MyJavaObject object = new MyJavaObject();
object.id = 1;
object.name = "example";
byte[] bytes = Default.PicklerGenerator.apply().generateBytes(object);
MyJavaObject deserializedObject = Default.PicklerGenerator.<MyJavaObject>create().generateFromBytes(bytes);
System.out.println("ID: " + deserializedObject.id);
System.out.println("Name: " + deserializedObject.name);
}
}