Пожалуйста, какие-либо идеи о том, как рефакторировать этот код Java, поэтому мне не нужно повторять эти кодовые блоки 3 (или более) раза?рефакторинг обязательный map.get код Java
Integer id = null;
try {
id = (Integer)extradata.get("id");
}
catch(Exception e) {
logger.error(e);
}
if (id == null) {
logger.error("no id set");
task.setStatus(Status.ERROR);
DBService.updateTaskStatus(conn, false, task);
conn.commit();
return;
}
String name = null;
try {
name = (String)extradata.get("name");
}
catch(Exception e) {
logger.error(e);
}
if (name == null) {
logger.error("no name set");
task.setStatus(Status.ERROR);
DBService.updateTaskStatus(conn, false, task);
conn.commit();
return;
}
String city = null;
try {
city = (String)extradata.get("city");
}
catch(Exception e) {
logger.error(e);
}
if (city == null) {
logger.error("no city set");
task.setStatus(Status.ERROR);
DBService.updateTaskStatus(conn, false, task);
conn.commit();
return;
}
Что у них общего? Где они отличаются? Создайте функцию, которая использует предыдущую, и берет последнюю как параметры. –
И ты действительно хочешь идти в лицо всем исключениям? Ловить 'Исключение' почти * всегда * плохая идея. –
Да, это основная идея, как я делал во многих других случаях ... но в этом случае это кажется сложнее, потому что кажется странным для внешней функции, которая просто получит значение переменной для фиксации соединения mysql (не только для получения значения conn в качестве параметра) – Lem0n