Вы можете использовать отражение, если хотите уменьшить количество строк, хотя отражение всегда является последним, что вы должны сделать.Что бы я сделал, это переместил бы эту логику if - get - set в отдельный компонент (в отдельный класс или метод).Помимо этого, я просто хотел бы отметить, что простота не единственная проблема здесь.Предположим, что null
является действительным значением, отправленным клиентом, вам понадобится некоторый механизм, чтобы определить, не отправлено ли значение или вы явно хотели установить значение null
.Пример перемещения этого кода в отдельный компонент может выглядеть примерно так:
class InvoiceAssembler {
public static assemble(Invoice existing, Invoice newInvoice) {
if(newInvoice.getInvoiceId() != null) {
existing.setInvoiceId(newInvoice.getInvoiceId());
}
...
}
}