возможно ли избавиться от try-catch?
подскажите, можно ли этот код, как то упростить, точнее не использовать try catch
Object tParameters = node.get("parameters");
final ObjectMapper mapper = new ObjectMapper();
try {
ConnectionOne connectionOne = mapper.convertValue(tParameters, ConnectionOne.class);
return new Server().setParameters(connectionOne);
}catch (Exception e){}
try {
ConnectionTwo connectionTwo = mapper.convertValue(tParameters, ConnectionTwo.class);
return new Server().setParameters(connectionTwo);
}catch (Exception e){}
public class Server<T> {
private T parameters;
public T getParameters() {
return parameters;
}
public Server setParameters(T parameters) {
this.parameters = parameters;
return this;
}
}
Ответы (2 шт):
Автор решения: Aziz Umarov
→ Ссылка
Можно, но при этом вы должны будите его отловить и обработать выше по уровню вложенности.
void somemethod() {
try{ .... }
catch(..)
{}
}
void anotherOne() { somemeMethod();}
после изменения
void somemethod() throws Exception {
....
}
void anotherOne() {
try {
somemeMethod();
} catch (....)
{}
}
Автор решения: Shirru
→ Ссылка
Как вариант, Вы можете написать кастомный deserializer, который будет конвертить в тот или иной класс на основании какого-либо поля. В Jackson есть много возможностей настроить это с помощью аннотаций (можно посмотреть здесь).