uju's Tech

[JAVA:casting]incompatible types error 본문

Programming/Java 이모저모

[JAVA:casting]incompatible types error

ujusy 2020. 6. 13. 03:36

<본 포스팅은 공부목적으로 작성되었습니다. 혹시 틀린 부분이 있거나 문제가 되는 부분이 있다면 답글 달아주세요!>

 

최근 개발을 하던 중 막히는 부분이 발생하였다.  자바 초짜로서 막혔던 부분을 포스팅 해보고자 한다.

 

spring batch listener에서 개발 중 berforeJob에서 fileNameMap에 있는 파일들을 모두 삭제하기 위해 fileNameMap을 가져와 fileNameMap을 저장하는 것을 구현하고 싶다.

 

Map<String, String> fileNameMap = jobExecution.getExecutionContext().get("fileNameMap");

위와 같이  job에서 fileNameMape을 가져와서 hashMap에 저장하려고한다.

 

왜인지 incompatible types 오류가 발생한다,.,ㅜ_ㅜ

 

casting이 필요한 것 같다..  만능 구글을 이용해보자..!

 


{casting 형태}

1. Json String to Map

map = mapper.readValue(json, new TypeReference<Map<String, String>>(){});

 

2. Map to Json String

json = mapper.writeValueAsString(map);

 

3.Map to Json File

mapper.writeValue(new File("c:\\user.json"), map);

 

4.Json File to Map

@SuppressWarnings("unchecked") 
ArrayList<String> list = (ArrayList<String>) map.get("messages");

 

4번의 형태와 유사하게 보여 한번 casting 해보도록 하자 ㅎㅎ..!

 

Map<String, String> fileNameMap = (Map<String, String> fileNameMap)jobExecution.getExecutionContext().get("fileNameMap");

map으로 casting을 해주니 error 발생은 하지 않지만 경고가 발생한다.

 

 

@suppresswarings("unchecked")

해당 위 코드에 작성해 줌으로서 경고를 무시해 주었다.!_!

 

이제 error없이 정상적으로 실행된다!!!

Comments