0

I am trying to obtain a field's value via reflection:

  for (Field field : entity.getClass().getDeclaredFields()) {

            log.info("[Field name] {} ", field);
            try {
                log.info("[Field value] {} ", field.get(entity));
            } catch (Exception e) {
                log.error(e.getMessage());
            }
        }
}

But I have this error:

 cannot access a member of class com.model.Dog with modifiers "private"
Nuñito Calzada
  • 4,394
  • 47
  • 174
  • 301

1 Answers1

1

You forgot to make the field accessible like so:

for (Field field : entity.getClass().getDeclaredFields()) {
    log.info("[Field name] {} ", field);
    try {
        field.setAccessible(true);
        log.info("[Field value] {} ", field.get(entity));
    } catch (Exception e) {
        log.error(e.getMessage());
    }
}
Flame239
  • 1,274
  • 1
  • 8
  • 20