안드로이드 문자열 값을 다루다 보면 가끔 마주치는 에러입니다.
예를들면 char 형태의 값에 string Casting 할 때 발생하곤 합니다.
아래 예제를 보면서 해결 책을 공유드립니다.
1. 오류 로그
-. 문제 발생시 아래처럼 SpannableBuilder cannot be cast to java.lang.String 이라는 문구가 발생합니다.
2. 예제 코드 (오류 포함)
-. 아래 파란색으로 마킹된 부분에서 에러가 발생합니다.
CharSequence 타입인 s를 string으로 casting 하기 때문입니다.
실제로 이 문제를 해결하는 방법은 아주 간단합니다.
3. 해결 방법
-. 이 해결 방법은 꼼수(?)가 아니라 정식 해결 방법입니다.
보기엔 조금 이상해보이지만, 실제 코드를 따라가보면 아주 정상적이랍니다.
기존 (string) 캐스팅을 지우고 그자리에 "" + 를 넣었습니다.
Code 를 따라가보면 ""로 인해 컴파일러는 이 다음에 오는 문자열이 string으로 자동 캐스팅을 합니다.
4. 관련 백서
Thrown to indicate that the code has attempted to cast an object to a subclass of which it is not an instance. For example, the following code generates a ClassCastException:
Object x = new Integer(0); System.out.println((String)x);
Summary
ClassCastException()Constructs a ClassCastException with no detail message. |
ClassCastException(String s)Constructs a ClassCastException with the specified detail message. |
From class java.lang.Throwable | |
From class java.lang.Object |
Public constructors
ClassCastException
public ClassCastException ()
Constructs a ClassCastException with no detail message.
ClassCastException
public ClassCastException (String s)
Constructs a ClassCastException with the specified detail message.
s | String: the detail message. |
'안드로이드 개발' 카테고리의 다른 글
안드로이드 context란? (0) | 2023.05.12 |
---|---|
안드로이드 키패드 숨기는 방법. InputMethodManager (0) | 2023.05.11 |
안드로이드 px, dip, dp 와 sp 차이 설명 (0) | 2023.05.11 |
[수정완료] FAILURE: Build failed with an exception. (0) | 2023.05.11 |
OutOfMemoryException 해결 방법 (0) | 2023.05.10 |