Исходя из сложности вашего условия, я сохраню эти параметры в Map
, используя простой POJO
.
private static final class Params{
final int oldStatus;
final int newStatus;
final String AssignTo;
final String AssignNe;
public Params(int oldStatus, int newStatus, String assignTo, String assignNe) {
this.oldStatus = oldStatus;
this.newStatus = newStatus;
this.AssignTo = assignTo;
this.AssignNe = assignNe;
}
}
Затем сначала создайте каждый параметр
private static Map<String, Params> params = new HashMap<>();
public static void main(String[] args) {
params.put("Approval", new Params(0, 1, "businessUnitId", "projectManagerId"));
params.put("Query", new Params(1, 6, "empCode", "projectManagerId"));
}
Тогда вам просто нужно определить метод для установки значений
public boolean setHistory(Params p){
reimbursementHistory.setOldStatus(p.oldStatus);
reimbursementHistory.setNewStatus(p.newStatus);
reimbursementHistory.setAssignTo((String) reimbursementHistoryDetails.get(p.AssignTo));
reimbursementHistory.setAssignne((String) reimbursementHistoryDetails.get(p.AssignNe));
}
И вызвать его, используя ссылку на метод, и Optional
Optional.of(params.get("Query"))
.map(this::setHistory)
.orElseThrow(IllegalArgumentException::new);
Использование Optional
позволяет легко вызвать исключение, если оно не найдено.