[E] Unchecked cast: 'java.lang.Object' to 'java.util.Map<java.lang.String,java.lang.Object>'
IntelliJμμ μ μ¬μ§κ³Ό κ°μ΄ Warning λ°μ€μ΄ κ·Έμ΄μ Έ μλ¬ λ©μμ§λ₯Ό νμΈν΄ 보λ λ€μκ³Ό κ°μλ€.
μ΄ μλ¬λ 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());
}
}
}