У меня есть объект с некоторыми полями, и у них есть сеттеры. Я хочу выполнить итерацию по карте из запроса и на основе имени ключа со значением null - отключить поле, выполнив что-то вроде
field1.set[key](null)
вместо того, чтобы запрос был списком и выполнял
list.forEach() {
if (list.contains(key)) {
object.setKeyName(null);
}
}
Это возможно? Это было бы более динамично, чем необходимость добавлять новый оператор if каждый раз, когда в модель добавляется новое поле. Не обращайте внимания на дезинфекцию входа.
Вы можете сделать это с помощью Reflection.
for (String fieldName : list) {
Class parameterType; //get the type
object.getClass().getDeclaredMethod("set" + fieldName, parameterType).invoke(object, null);
}