마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

MAP get 사용시 inconvertible types error

0 추천
public void onAuthorizeLicenseResult(final int resultCode,

      final String license,

      final String createTime,

      final Map<String, Object> resultInfo)

이 함수안의

mApassStatus = (int)resultInfo.get("apassStatus"); <-- 이 부분에서

 error: inconvertible types

    [javac]             mApassStatus = (int)resultInfo.get("apassStatus");

    [javac]                                               ^

    [javac]   required: int

    [javac]   found:    Object

    [javac] 1 error

에러가 계속 뜨는데요.

무슨 문제때문일까요?
ghostsbs (230 포인트) 님이 2016년 6월 12일 질문

1개의 답변

+1 추천

apassStatus 에 해당하는 값이 int 가 맞는지 instanceof 로 먼저 검사하세요 

 

aucd29 (218,390 포인트) 님이 2016년 6월 13일 답변
System.out.println("m instanceof Map: " + (resultInfo instanceof Map));
            System.out.println("m instanceof HashMap: " + (resultInfo instanceof Object));
            System.out.println("m instanceof Object: " + (resultInfo instanceof Integer));

님 말씀대로 추가했는데요.

마지막줄 Integer 부분에서 똑같은 에러가 발생하네요.
그래서
mApassStatus = Integer.parseInt(resultInfo.get("apassStatus").toString());
이렇게 형변환해서 쓰는데 맞는지 모르겠네요.
Object obj = resultInfo.get("apassStatus");
if (obj instanceof Integer) {
// TODO
}
...