-
Notifications
You must be signed in to change notification settings - Fork 69
/
SerializeExample.java
62 lines (49 loc) · 1.61 KB
/
SerializeExample.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import io.activej.serializer.BinarySerializer;
import io.activej.serializer.SerializerFactory;
import io.activej.serializer.annotations.Deserialize;
import io.activej.serializer.annotations.Serialize;
import io.activej.serializer.annotations.SerializeNullable;
import java.util.ArrayList;
import java.util.List;
public class SerializeExample {
//[START Storage]
public static class Storage {
@Serialize
public List<@SerializeNullable Nested<Integer, @SerializeNullable String>> listOfNested;
}
//[END Storage]
//[START Nested]
public static class Nested<T1, T2> {
@Serialize
public final T1 first;
@Serialize
public final T2 second;
public Nested(@Deserialize("first") T1 first, @Deserialize("second") T2 second) {
this.first = first;
this.second = second;
}
@Override
public String toString() {
return "Nested{" + first + ", " + second + '}';
}
}
//[END Nested]
public static void main(String[] args) {
//[START Serializer]
BinarySerializer<Storage> serializer = SerializerFactory.defaultInstance()
.create(Storage.class);
//[END Serializer]
Storage storage = new Storage();
storage.listOfNested = new ArrayList<>();
Nested<Integer, String> nested1 = new Nested<>(1, "abc");
storage.listOfNested.add(nested1);
storage.listOfNested.add(null);
Nested<Integer, String> nested2 = new Nested<>(5, null);
storage.listOfNested.add(nested2);
byte[] buffer = new byte[200];
serializer.encode(buffer, 0, storage);
Storage deserializedStorage = serializer.decode(buffer, 0);
System.out.println(storage.listOfNested);
System.out.println(deserializedStorage.listOfNested);
}
}