Size: a a a

2020 November 11

AY

Andrey Yanov in learn.java
Ребята, подскажите, как можно это упростить ?

String addressLine1 = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf("ADD1"));
       if(addressLine1.length() > 0)
           us.addressLine1 = addressLine1;
       String addressLine2 = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf("ADD2"));
       if(addressLine2.length() > 0)
           us.addressLine2 = addressLine2;
       String city = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf("CITY"));
       if(city.length() > 0)
           us.city = city;
       String state = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf("STATE"));
       if(state.length() > 0)
           us.state = state;

Ищу что-то типа:
attrMap = {"ADDR1": "addressLine1, "ADDR2": "addressLine2", ...}
for(String fieldName, String attrName: attrMap) {
  String outputValue = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf(fieldName);
  if (outputValue.length() > 0)
       setattribute(us, attrName, outputValue)
}

Такое можно сделать лаконично ?
источник

V

V in learn.java
Andrey Yanov
Ребята, подскажите, как можно это упростить ?

String addressLine1 = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf("ADD1"));
       if(addressLine1.length() > 0)
           us.addressLine1 = addressLine1;
       String addressLine2 = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf("ADD2"));
       if(addressLine2.length() > 0)
           us.addressLine2 = addressLine2;
       String city = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf("CITY"));
       if(city.length() > 0)
           us.city = city;
       String state = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf("STATE"));
       if(state.length() > 0)
           us.state = state;

Ищу что-то типа:
attrMap = {"ADDR1": "addressLine1, "ADDR2": "addressLine2", ...}
for(String fieldName, String attrName: attrMap) {
  String outputValue = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf(fieldName);
  if (outputValue.length() > 0)
       setattribute(us, attrName, outputValue)
}

Такое можно сделать лаконично ?
источник

AY

Andrey Yanov in learn.java
Эмммм
источник

V

V in learn.java
Andrey Yanov
Ребята, подскажите, как можно это упростить ?

String addressLine1 = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf("ADD1"));
       if(addressLine1.length() > 0)
           us.addressLine1 = addressLine1;
       String addressLine2 = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf("ADD2"));
       if(addressLine2.length() > 0)
           us.addressLine2 = addressLine2;
       String city = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf("CITY"));
       if(city.length() > 0)
           us.city = city;
       String state = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf("STATE"));
       if(state.length() > 0)
           us.state = state;

Ищу что-то типа:
attrMap = {"ADDR1": "addressLine1, "ADDR2": "addressLine2", ...}
for(String fieldName, String attrName: attrMap) {
  String outputValue = outputRow.getStringData(Arrays.asList(getInputFieldlist()).indexOf(fieldName);
  if (outputValue.length() > 0)
       setattribute(us, attrName, outputValue)
}

Такое можно сделать лаконично ?
строки в константы, если getInput возвращает массив, то почему в названии лист
источник

V

V in learn.java
но а вообще да, из строки поднять мапу и работать с ней
источник

AY

Andrey Yanov in learn.java
Я просто последний раз что-то на Java писал лет 7 назад...
Как по мапе работать ? Можете накидать пример кода ?
источник

V

V in learn.java
ну если строка формата ключ:значение, ключ2:значение2, …
источник

AY

Andrey Yanov in learn.java
Возвращает действительно массив, стоит переименовать.
источник

V

V in learn.java
то создаем метод с парсом строки в мапу
источник

V

V in learn.java
и работаем с тем же форматом, ключ:значение, только в мапе
источник

V

V in learn.java
немного оффтоп, таких прикладных задач очень много на codewars, там иногда очень лаконичные решения можно подсмотреть
источник

AY

Andrey Yanov in learn.java
Я понял, а как мне задавать аттрибуту значение по имени аттрибута ?
источник

AY

Andrey Yanov in learn.java
Смотреть reflection ?
источник

V

V in learn.java
если там json, то можно джексоном обьект поднять
источник

V

V in learn.java
в общем вариантов решений куча
источник

AY

Andrey Yanov in learn.java
Может кинете пример кода ?
источник

AY

Andrey Yanov in learn.java
V
если там json, то можно джексоном обьект поднять
Там json -это где именно ?
источник

V

V in learn.java
ну строка формата json
источник

AY

Andrey Yanov in learn.java
Я не понимаю, про какую часть кода вы говорите.
источник

ЕЯ

Егор Яценко... in learn.java
спс 🙌
источник