728x90
반응형
ArrayList<String> 타입을 String[] 배열로 변환해 리턴하는 과정해서 발생했다.
import java.util.*;
class Solution {
public String[] solution(String[] strArr) {
ArrayList<String> answer = new ArrayList<>();
for (String str : strArr) {
if (!str.contains("ab")) {
answer.add(str);
}
}
// !!문제 구간!! ArrayList -> String 배열 변환
String[] str_arr = answer.toArray();
return str_arr;
}
}
- toArray() 반환 타입은 Object[] 그런데 왼쪽 변수 타입은 String[]
- Object[]를 String[]으로 바로 변환할 수 없으니까 타입 불일치 에러가 발생
해결
return str_arr.toArray(new String[0]);
- 원하는 타입 배열(String[])을 인자로 넘기면, 그 타입으로 변환
- new String[0]은 단순히 "난 String 배열 원해!"라고 알려주는 역할
- 크기 0을 주는 이유는 → toArray()가 자동으로 answer.size()만큼 알맞게 새 배열을 만들어 채워주기 때문
728x90
반응형
'Dev. > Error.' 카테고리의 다른 글
| [Error] 키오스크 트러블 슈팅 1 - 상태 패턴 (0) | 2025.10.25 |
|---|---|
| [Error] 계산기 만들기 트러블 슈팅 (0) | 2025.10.17 |
| [Error] error: bad operand types for binary operator (0) | 2025.10.01 |
| [Error] ModuleNotFoundError: No module named 'apps.views.main'; 'apps.views' is not a package (0) | 2023.04.27 |
| [Error] TypeError: 'BasePermissionMetaclass' object is not iterable in django rest framework (0) | 2023.04.22 |