LINUX.ORG.RU

История изменений

Исправление crutch_master, (текущая версия) :

Это вовсе не проблема. Это питонская фича(1из), обеспечивающая тому пользователей.

В чём фича? В том, что ты не объявляешь private final static? Ты и в яве не обязан объявлять private final static. И класс длинной 40 символов не обязан каждый раз писать. Можешь сделать свой класс var и везде его использовать.
Тут дело в другом. Чтобы перевести json в pojo на яве или пили кучу классов или дёргай .get .has .etc какого-нибудь класса, в который завернули json. Это создаёт некоторые трудности, т.к. ты или вынужден размазывать логику происходящего на кучу классов или делать портянки вместо obj.key = value; Конечно, можно и это позаворачивать и навелосипедить своих объектов. Например мне надо вернуть json {«msg»:«ok»}. На js я просто пишу return {msg:«ok»}. В яве меня есть целый jackson ObjectMapper (om) и я делаю om.createObjectNode().put("msg", "ok").toString() Если нужно {msg:«ok», data : [1,2,3]} то всё еще сложнее:

//надо сделать arrayNode и пихать туда..
ObjectNode ret = om.createObjectNode();
ret.put("msg","ok");
ArrayNode arr = ret.putArray("data");
for (int i = 0; i < 4; i++) arr.put(i);
return ret.toString();
Я могу всё позаворачивать и получить что-то типа
return Obj("msg","ok").array("data").few("1,2,3").str();
Что всё равно будет жирно, но уже терпимее. А соль в том, что можно просто взять js и не выделываться всё это заворачивать, но это для меня, т.к. я пилю микросервисы, они маленькие и мне похрену на чём их писать. А если надо писать именно на яве, то проблемы о которых ты говоришь проблемами не являются. Учишь рефлексию, пишешь обёртки и всё ок. Например, чтобы сделать новый метод микросервиса я просто пишу
@MQCommand
public String myMethod(Integer i, Double d, List<String> st) {
    ...
}
Маленький ява класс парсит json, который хочет дёрнуть myMethod, подсовывает в ява метод параметры, заполняет List и мне ничего не надо проверять на null или корректность.

Исходная версия crutch_master, :

Это вовсе не проблема. Это питонская фича(1из), обеспечивающая тому пользователей.

В чём фича? В том, что ты не объявляешь private final static? Ты и в яве не обязан объявлять private final static. И класс длинной 40 символов не обязан каждый раз писать. Можешь сделать свой класс var и везде его использовать.
Тут дело в другом. Чтобы перевести json в pojo на яве или пили кучу классов или дёргай .get .has .etc какого-нибудь класса, в который завернули json. Это создаёт некоторые трудности, т.к. ты или вынужден размазывать логику происходящего на кучу классов или делать портянки вместо obj.key = value; Конечно, можно и это позаворачивать и навелосипедить своих объектов. Например мне надо вернуть json {«msg»:«ok»}. На js я просто пишу return {msg:«ok»}. В яве меня есть целый jackson ObjectMapper (om) и я делаю om.createObjectNode().put("msg", "ok").toString() Если нужно {msg:«ok», data : [1,2,3]} то всё еще сложнее:

//надо сделать arrayNode и пихать туда..
ObjectNode ret = om.createObjectNode();
ret.put("msg","ok");
ArrayNode arr = ret.putArray("data");
for (int i = 0; i < 4; i++) arr.put(i);
return ret.toString();
Я могу всё позаворачивать и получить что-то типа
return Obj("msg","ok").array("data").few("1,2,3").str();
Что всё равно будет жирно, но уже терпимее. А соль в том, что можно просто взять js и не выделываться всё это заворачивать, но это для меня, т.к. я пилю микросервисы, они маленькие и мне похрену на чём их писать. А если надо писать именно на яве, то проблемы о которых ты говоришь проблемами не являются. Учишь рефлексию, пишешь обёртки и всё ок. Например, чтобы сделать новый метод микросервиса я просто пишу
@MQCommand
public myMethod(Integer i, Double d, List<String> st) {
    ...
}
Маленький ява класс парсит json, который хочет дёрнуть myMethod, подсовывает в ява метод параметры, заполняет List и мне ничего не надо проверять на null или корректность.