0
У меня есть метод, который просматривается под сообщением. Я хочу реорганизовать этот метод из «для каждого» для просмотра потока как myCollect.stream(). Collect (Collectors.toMap (..))) , но не понимаю, как это работает Collectors.toMap (..) ,Рефакторинг в Java 8 поток
private <T extends Entity> Map<String, Object> prepareEntity(T entity) throws Exception {
Map<String, Object> preparedEntity = new LinkedHashMap<>(Collections.EMPTY_MAP);
Objects.requireNonNull(entity);
Class clazz = entity.getClass();
List<Field> openFields = getDeclaredFields(clazz, Collections.EMPTY_LIST);
for (Field field : openFields) {
field.setAccessible(true);
preparedEntity.put(field.getName(), field.getType().equals(Boolean.class)
? ("true".equals(field.get(entity).toString())) ? 1 : 0
: field.get(entity));
}
return preparedEntity;
}
IDEA сообщение показать ошибку «Не удается разрешить метод" GetName»Я стараюсь, как сделал это, слишком – BabyGluk
@BabyGluk ли' java.lang .reflect.Field'? У этого класса есть метод «Field :: getField», поэтому он должен работать. Вы можете попытаться заменить ссылку на метод выражением лямбда: 'field -> field.getName()'. – Eran
Если это 'java.lang.reflect.Field', я бы использовал' field.getBoolean (entity)? 1: 0', а не этот странный '(« true ».equals (field.get (entity) .toString()))? 1: 0' ... – Holger