-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
77 lines (59 loc) · 2.47 KB
/
Solution.java
File metadata and controls
77 lines (59 loc) · 2.47 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
//Jesus answered, "You would have no power at all against me, unless it were given to you from above. Therefore he who delivered me to you has greater sin." (John 19:11)
package com.javarush.task.task20.task2017;
import java.io.*;
/*
Десериализация
*/
public class Solution {
public A getOriginalObject(ObjectInputStream objectStream) {
A a = null;
try {
a = (A) objectStream.readObject();
} catch (Exception e){
e.printStackTrace();
return null;
}
return a;
}
public class A implements Serializable {
}
public class B extends A {
public B() {
System.out.println("inside B");
}
}
public static void main(String[] args) {
}
}
/*
Десериализация
На вход подается поток, в который записан сериализованный объект класса A либо класса B.
Десериализуй объект в методе getOriginalObject так, чтобы в случае возникновения исключения было выведено сообщение на экран и возвращен null.
Реализуй интерфейс Serializable где необходимо.
Требования:
1. Класс B должен быть потомком класса A.
2. Класс A должен поддерживать интерфейс Serializable.
3. Класс B не должен явно поддерживать интерфейс Serializable.
4. Метод getOriginalObject должен возвращать объект типа A полученный из потока ObjectInputStream.
5. Метод getOriginalObject должен возвращать null, если при попытке десериализации не был получен объект типа A.
6. Метод getOriginalObject должен возвращать null, если при попытке десериализации возникло исключение.
package com.javarush.task.task20.task2017;
import java.io.ObjectInputStream;
*
Десериализация
*
public class Solution {
public A getOriginalObject(ObjectInputStream objectStream) {
return null;
}
public class A {
}
public class B extends A {
public B() {
System.out.println("inside B");
}
}
public static void main(String[] args) {
}
}
*/