상황
VO클래스에 있는 필드에 접근하여 그 값이 "" (공백)인지 체크하고, "" (공백)이면 null을 set해주어야 한다.
만약 reflection을 사용하지 않고 넘어온 VO를 일일이 확인하고 바꿔주면
코드가 굉장히 중복되게 나열된다.
해결방법
public void changeBlankToNull(TestVo testVo){
// null 변경 처리 ('' -> null)
Arrays.stream(testVo.class.getDeclaredFields())
.filter(field -> {
field.setAccessible(true);
Object value = null;
try {
value = field.get(testVo);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return value != null && value.equals("") && !field.getName().equals("no");
}).forEach(field -> {
try {
field.setAccessible(true);
field.set(testVo, null);
} catch (Exception e) {
e.printStackTrace();
}
});
}
'Back > Java' 카테고리의 다른 글
[JAVA] 파일 관련 Stream, I/O 성능 개선 (File 복사 기능) (2) | 2024.07.24 |
---|---|
[JAVA] Stream Collectors.groupingBy 널(null) 사용하기 (0) | 2023.04.07 |
[Java] Stream 스트림으로 중복 값 찾기 (0) | 2023.02.22 |
[Java] Optional 개념, 사용법 (1) | 2023.02.21 |
[JAVA] 데이터 직렬화(serialization) 하는 이유 (0) | 2022.02.11 |
댓글