Repository navigation
Expand file tree
/
Copy pathSolution.java
More file actions
85 lines (56 loc) · 2.85 KB
/
Copy pathSolution.java
File metadata and controls
85 lines (56 loc) · 2.85 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
//And he had in his hand a little book open: and he set his right foot upon the sea, and his left foot on the earth (Revelation 10:2)
package com.javarush.task.task30.task3005;
import java.util.ArrayList;
import java.util.List;
/*
Такие хитрые исключения!
*/
public class Solution {
public static void main(String[] args) {
checkAFlag(new D());
}
public static void checkAFlag(D d) {
if (d != null && d.cs != null && d.cs.size() != 0 && d.cs.get(0).bs != null && d.cs.get(0).bs.size() != 0 &&
d.cs.get(0).bs.get(0).as != null && d.cs.get(0).bs.get(0).as.size() != 0 && d.cs.get(0).bs.get(0).as.get(0).flag) {
System.out.println("A's flag is true");
} else { //all other cases
System.out.println("Oops!");
}
}
static class A {
boolean flag = true;
}
static class B {
List<A> as = new ArrayList<>();
{
as.add(new A());
}
}
static class C {
List<B> bs = new ArrayList<>();
{
bs.add(new B());
}
}
static class D {
List<C> cs = new ArrayList<>();
{
cs.add(new C());
}
}
}
/*
Такие хитрые исключения!
Исправь реализацию метода checkAFlag, чтобы во всех случаях он не приводил к бросанию исключений.
Сохрани логику вывода данных.
Метод main не участвует в тестировании.
Требования:
1. В методе checkAFlag должна быть проверка, что d, пришедший в качестве параметра не null. Иначе вывод "Oops!".
2. В методе checkAFlag должна быть проверка, что d.cs не null. Иначе вывод "Oops!".
3. В методе checkAFlag должна быть проверка, что d.cs содержит хотя бы один элемент. Иначе вывод "Oops!".
4. В методе checkAFlag должна быть проверка, что d.cs.get(0).bs не null. Иначе вывод "Oops!".
5. В методе checkAFlag должна быть проверка, что d.cs.get(0).bs содержит хотя бы один элемент. Иначе вывод "Oops!".
6. В методе checkAFlag должна быть проверка, что d.cs.get(0).bs.get(0).as не null. Иначе вывод "Oops!".
7. В методе checkAFlag должна быть проверка, что d.cs.get(0).bs.get(0).as содержит хотя бы один элемент. Иначе вывод "Oops!".
8. В методе checkAFlag должна быть проверка, что d.cs.get(0).bs.get(0).as.get(0).flag равен true. Иначе вывод "Oops!".
*/