Conversation
|
|
||
| public enum ClientType { | ||
| INDIVIDUAL("INDIVIDUAL") { | ||
| private List<Object> parseClient(MyJsonObject client) { |
There was a problem hiding this comment.
вот этого тут быть не должно, не надо все поля разных типов складывать в List. Как ты потом будешь по индексу искать что ль. А если там не в том порядке что ты хочешь. Надо складывать в Map, а потом искать по ключу, а не по индексу
| return new HoldingClient(parseClient(client)); | ||
| } | ||
| }; | ||
| public final String type; |
There was a problem hiding this comment.
это необязательно. У тебя название экземпляров enum не отличается строкового типа
| }; | ||
| public final String type; | ||
|
|
||
| /*List<Object> parseClient(JSONObject client) { |
| import ru.sber.mironov.ClientType.ClientType; | ||
|
|
||
| public class Client { | ||
| public final String name; |
There was a problem hiding this comment.
почему все public. Заменить на private
| } | ||
|
|
||
| public HoldingClient(List<Object> client) { | ||
| super((String) client.get(0), (String) client.get(1), ClientType.HOLDING); |
There was a problem hiding this comment.
кастование может плохим закончиться, ты даже не проверяешь на тип. Схватишь ClassCastException.
Ведь в задании нужно было поддерживать все примитивы
| import java.util.ArrayList; | ||
|
|
||
| public class ClientsJsonParser { | ||
| public static ArrayList<Client> parseClientsJson(String filePath) throws IOException { |
| String readData = String.valueOf(buf, 0, numRead); | ||
| fileData.append(readData); | ||
| } | ||
| reader.close(); |
There was a problem hiding this comment.
ресурсы закрываем в finally либо используем try-with-resources
| //System.out.println(clients); | ||
| ArrayList<Client> people = new ArrayList<>(); | ||
| for (var o : clients) { | ||
| //System.out.println(o); |
|
|
||
| public MyJsonArray(String content) { | ||
| ArrayList<MyJsonObject> clients = new ArrayList<>(); | ||
| Pattern pattern = Pattern.compile("\\{.+?}"); |
There was a problem hiding this comment.
У тебя решение явно завязано на то что json в одну строку идет, но это не так. Он может подаваться на вход в любом, отформатированным или нет. И он не обязательно будет подаваться в виде массива
| private ArrayList<Client> people; | ||
|
|
||
| @Before | ||
| public void setUpPeople() throws IOException { |
There was a problem hiding this comment.
тестов мало. Нет тестов на примитивы. Значением в json может быть как boolean, int, double, float. И они будут без кавычек и должны все парситься
No description provided.