0
메시지 아래에서 본 메소드가 있습니다. "each for"에서이 메소드를 리 스트림 뷰 과 같이 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 쇼 오류 메시지가이 같은 짓을 시도했다, 너무 – 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