Repository navigation
Expand file tree
/
Copy pathSolution.java
More file actions
154 lines (124 loc) · 4.12 KB
/
Copy pathSolution.java
File metadata and controls
154 lines (124 loc) · 4.12 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
146
147
148
149
150
151
152
153
154
//And sware by him that liveth for ever and ever, who created heaven, and the things that therein are, and the earth, and the things that therein are, and the sea, and the things which are therein, that there should be time no longer (Revelation 10:6)
package com.javarush.task.task30.task3011;
/*
Сделай одно изменение кода
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
solution.doSmth(new A(), null, null);
A a = new A();
a.setName(null);
B b = new B();
b.setName(null);
C c = new C();
b.setName(null);
System.out.println();
solution.doSmth(null, null, null);
System.out.println();
solution.doSmth(a, b, c);
a.setName("1");
b.setName("2");
b.setName("3");
System.out.println();
solution.doSmth(a, b, c);
}
public void doSmth(A a, B b, C c) {
try {
if (a != null && a.getName() != null) {
//do nothing
}
} catch (NullPointerException e) {
a = new A();
a.setName("A");
}
try {
if (a != null && a.getName() == null) {
a.setName("A");
}
} catch (NullPointerException e) {
}
if (a == null) {
a = new A();
a.setName("A");
}
try {
if (b != null && b.getName() != null) {
//do nothing
}
} catch (NullPointerException e) {
b = new B();
b.setName("B");
}
try {
if (b != null && b.getName() == null) {
b.setName("B");
}
} catch (NullPointerException e) {
}
if (b == null) {
b = new B();
b.setName("B");
}
try {
if (c != null & c.getName() != null) {
}
} catch (NullPointerException e) {
c = new C();
c.setName("C");
}
try {
if (c != null && c.getName() == null) {
c.setName("C");
}
} catch (NullPointerException e) {
}
if (c == null) {
c = new C();
c.setName("null");
}
System.out.print(a.getName());
System.out.print(b.getName());
System.out.print(c.getName());
}
static class A {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
static class B {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
static class C {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
/*
Сделай одно изменение кода
Внеси одну правку в код программы, чтобы вывод всегда был "ABC", даже если в метод doSmth
передавать параметрами null.
Не изменяй и не добавляй строковые литералы. Не изменяй строки с выводом данных на экран.
Не добавляй сеттеры.
Требования:
1. Вывод метода doSmth должен быть "ABC", если в него передать объекты типа A, B и C.
2. Вывод метода doSmth должен быть "ABC", если в него передать null, null, null.
3. Запрещено изменять или добавлять строковые литералы, запрещено добавлять сеттеры.
4. Запрещено изменять строки с выводом данных на экран.
5. Необходимо внести одну правку в код программы.
*/