[E] Unchecked cast: 'java.lang.Object' to 'java.util.Map<java.lang.String,java.lang.Object>'

2025. 4. 15. 14:54Β·πŸ’» Language/Java : μžλ°”
728x90

 

IntelliJμ—μ„œ μœ„ 사진과 같이 Warning 밑쀄이 κ·Έμ–΄μ Έ μ—λŸ¬ λ©”μ‹œμ§€λ₯Ό 확인해 λ³΄λ‹ˆ λ‹€μŒκ³Ό κ°™μ•˜λ‹€.

Unchecked cast: 'java.lang.Object' to 'java.util.Map<java.lang.String.java.lang.Object>'

 

이 μ—λŸ¬λŠ” Javaμ—μ„œ μ œλ„€λ¦­ νƒ€μž… μΊμŠ€νŒ…μ„ ν•  λ•Œ λ°œμƒν•˜λŠ” unchecked cast 경고둜, Java의 νƒ€μž… μ†Œκ±°(Type Erasure) λ•Œλ¬Έμ— λŸ°νƒ€μž„ μ‹œμ μ—λŠ” μ œλ„€λ¦­ νƒ€μž… 정보가 사라지기 λ•Œλ¬Έμ— λ°œμƒν•˜λŠ” 것이라고 ν•œλ‹€.

 

 

ν•΄κ²° 방법

1. @SuppressWarnings μ‚¬μš©

κ°€μž₯ κ°„λ‹¨ν•˜μ§€λ§Œ, 경고만 λ¬΄μ‹œν•  뿐 μ‹€μ œ νƒ€μž… μ•ˆμ „μ„±μ€ 보μž₯λ˜μ§€ μ•ŠλŠ” 방법이닀. λŸ°νƒ€μž„μ— μ‹€μ œλ‘œ μΊμŠ€νŒ…μ΄ μ•ˆμ „ν•œμ§€ ν™•μ‹ ν•œλ‹€λ©΄ μ‚¬μš©ν•΄λ„ λ˜μ§€λ§Œ νƒ€μž… μ•ˆμ „μ„±μ„ 보μž₯ν•˜κΈ° μœ„ν•΄μ„œλŠ” 2λ²ˆμ΄λ‚˜ 3번 방법을 μ‚¬μš©ν•˜λŠ” 게 μ’‹μŒ.

@SuppressWarnings("unchecked")
Map<String, Object> dataBody = (Map<String, Object>) responseBody.get("dataBody");
더보기

ν˜„μž¬ ν™˜κ²½μ—μ„œλŠ” responseBody.get("dataBody") instanceof Map λΆ„κΈ° 내에 νƒ€μž… μΊμŠ€νŒ…λ¬Έμ΄ μž‘μ„±λ˜μ–΄ μžˆμ–΄ μΊμŠ€νŒ…μ΄ μ•ˆμ „ν•˜λ‹€κ³  ν™•μ‹ ν•  수 μžˆμœΌλ―€λ‘œ 1λ²ˆμ„ μ±„νƒν•˜μ—¬ κ²½κ³ λ₯Ό λ¬΄μ‹œν•˜λŠ” λ°©ν–₯으둜 μ½”λ“œλ₯Ό κ°œμ„ ν•˜μ˜€λ‹€.

if (responseBody.containsKey("dataBody") && responseBody.get("dataBody") instanceof Map) {
    @SuppressWarnings("unchecked")
    Map<String, Object> dataBody = (Map<String, Object>) responseBody.get("dataBody");

 

2. νƒ€μž… 체크 ν›„ μΊμŠ€νŒ…

Object dataObj = responseBody.get("dataBody");
if (dataObj instanceof Map) {
    Map<String, Object> dataBody = (Map<String, Object>) dataObj;
    // 이후 μ½”λ“œ...
}

 

3. Collections μ‚¬μš©

Map<String, Object> dataBody = Collections.emptyMap();
Object dataObj = responseBody.get("dataBody");
if (dataObj instanceof Map) {
    for (Map.Entry<?, ?> entry : ((Map<?, ?>) dataObj).entrySet()) {
        if (entry.getKey() instanceof String) {
            dataBody.put((String) entry.getKey(), entry.getValue());
        }
    }
}
728x90
μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'πŸ’» Language > Java : μžλ°”' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Java] Caffeine Cacheλž€?  (0) 2025.05.20
[E] java: warning: source release 17 requires target release 17  (0) 2025.04.17
[Java/JPA] QueryDSLμ΄λž€?  (0) 2025.03.25
[Java] JDK μ„€μΉ˜ (Windows 10, JDK 17)  (0) 2025.03.12
[Java] λ°±μ€€ 온라인 μ €μ§€ λ‹¨κ³„λ³„λ‘œ 풀어보기 - μž…μΆœλ ₯κ³Ό 사칙연산  (0) 2024.11.20
'πŸ’» Language/Java : μžλ°”' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [Java] Caffeine Cacheλž€?
  • [E] java: warning: source release 17 requires target release 17
  • [Java/JPA] QueryDSLμ΄λž€?
  • [Java] JDK μ„€μΉ˜ (Windows 10, JDK 17)
mxnxeonx
mxnxeonx
"μ•„, 이거 λ­μ˜€λ”λΌ"λ₯Ό ν•˜μ§€ μ•ŠκΈ°μœ„ν•œ 일기μž₯.
  • mxnxeonx
    MJ's Development Diary
    mxnxeonx
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (158)
      • πŸ’» Language (43)
        • Java : μžλ°” (18)
        • Python : 파이썬 (9)
        • ROS : λ‘œλ΄‡μ‹œμŠ€ν…œ (9)
        • Android : μ•ˆλ“œλ‘œμ΄λ“œ (4)
        • JavaScript : μžλ°”μŠ€ν¬λ¦½νŠΈ (2)
      • 🌐 Environment (19)
        • IDE : ν†΅ν•©κ°œλ°œν™˜κ²½ (9)
        • Virtual : κ°€μƒν™˜κ²½ (10)
      • βš™ Framework (12)
        • Vue-λ·° (3)
        • Spring-μŠ€ν”„λ§ (7)
      • πŸ’Ύ DataBase (18)
      • 🌌 OS (36)
        • Linux-λ¦¬λˆ…μŠ€ (36)
      • πŸ’¬ CI · CD (7)
        • Git : κΉƒ (7)
      • πŸ“ƒ ETC (6)
      • πŸ€– AI (5)
  • 링크

    • GitHub
  • 인기 κΈ€

  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
mxnxeonx
[E] Unchecked cast: 'java.lang.Object' to 'java.util.Map<java.lang.String,java.lang.Object>'
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”