-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
145 lines (119 loc) · 4.36 KB
/
Solution.java
File metadata and controls
145 lines (119 loc) · 4.36 KB
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
//Jesus therefore came out, wearing the crown of thorns and the purple garment. Pilate said to them, "Behold, the man!" (John 19:5)
package com.javarush.task.task20.task2013;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.List;
/*
Externalizable Person
*/
public class Solution {
public static class Person implements Externalizable {
private String firstName;
private String lastName;
private int age;
private Person mother;
private Person father;
private List<Person> children;
public Person() {}
public Person(String firstName, String lastName, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
public void setMother(Person mother) {
this.mother = mother;
}
public void setFather(Person father) {
this.father = father;
}
public void setChildren(List<Person> children) {
this.children = children;
}
@Override
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(mother);
out.writeObject(father);
out.writeChars(firstName);
out.writeChars(lastName);
out.writeInt(age);
out.writeObject(children);
}
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
firstName = in.readLine();
lastName = in.readLine();
father = (Person)in.readObject();
mother = (Person)in.readObject();
age = in.readInt();
children = (List)in.readObject();
}
}
public static void main(String[] args) {
}
}
/*
Externalizable Person
Класс Person должен сериализовываться с помощью интерфейса Externalizable.
Исправь ошибку сериализации.
Сигнатуры методов менять нельзя.
Требования:
1. Класс Solution.Person должен поддерживать интерфейс Externalizable.
2. Методы readExternal и writeExternal должны позволять корректно сериализовывать и десериализовывать объекты типа Person.
3. В классе Solution.Person должен быть создан конструктор без параметров.
4. В классе Solution.Person должен быть создан конструктор с тремя параметрами (String firstName, String lastName, int age).
package com.javarush.task.task20.task2013;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.List;
*
Externalizable Person
*
public class Solution {
public static class Person {
private String firstName;
private String lastName;
private int age;
private Person mother;
private Person father;
private List<Person> children;
public Person(String firstName, String lastName, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
public void setMother(Person mother) {
this.mother = mother;
}
public void setFather(Person father) {
this.father = father;
}
public void setChildren(List<Person> children) {
this.children = children;
}
@Override
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(mother);
out.writeObject(father);
out.writeChars(firstName);
out.writeChars(lastName);
out.writeInt(age);
out.writeObject(children);
}
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
firstName = in.readLine();
lastName = in.readLine();
father = (Person)in.readObject();
mother = (Person)in.readObject();
age = in.readInt();
children = (List)in.readObject();
}
}
public static void main(String[] args) {
}
}
*/