Java String과 Object형 변환
Android용 ADfresca SDK작업중 C++ -> Java를 JNI로 호출할 때 ApiKey를 인자로 jstring로 넘겨주게 해놨습니다. Java에서는 String로 받아 Message의 Object형 멤버 obj에 대입해서 메세지를 보내죠.
문제는 메세지핸들링 할 때 이클립스의 인텔리전스?인지 자동으로 나오는 것으로 해줬습니다. 그랬더니 (String)msg.obj 로 그냥 캐스팅 하더군요. 빌드도 문제없고 실행도 되지만,
java.lang.classcastexception cannot be cast to java.lang.string
java.lang.classcastexception (String) msg.obj
위와같은 exception을 뿜어냅니다. 뭐지 싶어 msg.obj. 을 누르니 toString가 있네요. 이렇게 하고 잘 됩니다. 정리하자면,
String strA, strB;
...
Object obj = strA;
//strB = String.valueOf(obj); 이것도 가능한 듯?
strB = obj.toString();
입니다.
문제는 메세지핸들링 할 때 이클립스의 인텔리전스?인지 자동으로 나오는 것으로 해줬습니다. 그랬더니 (String)msg.obj 로 그냥 캐스팅 하더군요. 빌드도 문제없고 실행도 되지만,
java.lang.classcastexception cannot be cast to java.lang.string
java.lang.classcastexception (String) msg.obj
위와같은 exception을 뿜어냅니다. 뭐지 싶어 msg.obj. 을 누르니 toString가 있네요. 이렇게 하고 잘 됩니다. 정리하자면,
String strA, strB;
...
Object obj = strA;
//strB = String.valueOf(obj); 이것도 가능한 듯?
strB = obj.toString();
입니다.
댓글
댓글 쓰기