일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- cloud run
- nodejs
- Baekjoon
- 웹해킹
- Python
- 파이썬
- hackctf
- 리버싱
- webhacking.kr
- 스프링 배치
- 프로그래머스
- sequelize
- 포너블
- pwnable.xyz
- 회고
- programmers
- 보안
- docker
- kotest
- gcp ci/cd
- 백준
- 사이버보안
- gcp
- 네트워크
- Batch
- node.js
- gcp cloud build
- 웹보안
- 시스템 해킹
- spring Batch
Archives
uju's Tech
[JAVA:casting]incompatible types error 본문
<본 포스팅은 공부목적으로 작성되었습니다. 혹시 틀린 부분이 있거나 문제가 되는 부분이 있다면 답글 달아주세요!>
최근 개발을 하던 중 막히는 부분이 발생하였다. 자바 초짜로서 막혔던 부분을 포스팅 해보고자 한다.
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없이 정상적으로 실행된다!!!
'Programming > Java 이모저모' 카테고리의 다른 글
[JAVA: Enum] 서비스 마다 변수가 달라질 때? (0) | 2020.06.13 |
---|---|
[JAVA8:Fuctional interface] Map의 value로 method를 지정하고 싶다! (0) | 2020.06.13 |
[Java 8: forEach] HashMap 에 넣은 value를 반복문으로 가져오고싶다! (0) | 2020.06.13 |
Comments