코더가 되고싶은 남자

java stream Map convert 본문

java

java stream Map convert

guney 2023. 11. 7. 13:50
반응형
public <S, D> List<D> clrInfoSet(List<S> list, Class<D> c) {
	//select
    List<Map<String, Object>> clrList = golftelRoomBkdnBlckRepository.selectGolftelRoomBlckCstusClrList(UserVO.getUserInfo());

    ObjectMapper objectMapper = new ObjectMapper();
    ModelMapper modelMapper = new ModelMapper();

	//DTO & VO > HashMap Convert
    List<Map<String, Object>> mapList = objectMapper.convertValue(list, new TypeReference<List<Map<String, Object>>>(){});

    if (!clrList.isEmpty()) {
		//비지니스 로직
        mapList.forEach(n -> {
            clrList.forEach(el -> {
                String str = String.valueOf(el.get("Cd")).toUpperCase();

                n.put(str.toUpperCase().concat("비지니스"), el.get("Cd"));
                n.put(str.toUpperCase().concat("비지니스"), el.get("Clr"));
            });
        });
    }

	//가공한 데이터 Class<D> c 인자로 받은 클래스 형태로 DTO & VO 변환
    return mapList.stream().map(el -> modelMapper.map(el, c)).toList();
}

 

mapList 객체 안에 추가적인 변수를 set 후 원하는 dto(vo)<class>로 리턴