2014-04-24 3 views
1
public String[] getAllKeys(){ 

    Object[] keysCopy = new Object[keys.size()]; 
    keysCopy = keys.toArray(); 

    return ((String[])keysCopy()); 
} 

왜 이렇게합니까? Ljava.lang.Object; [Ljava.lang.String ??문자열 []로 캐스팅 된 [] 객체를 반환 할 수 없습니다.

+1

를 사용하여 오버로드 된 메서드'toArray (T [] 편곡)의' –

+0

가능한 중복 [자바 : (문자열 \ [\]) 목록 .toArray() ClassCastException 제공] (http://stackoverflow.com/questions/5690351/java-stringlist-toarray-gives-classcastexception) –

답변

2

개체 배열이 있고 Object[]을 (를) String[] (으)로 캐스팅 할 수 없기 때문입니다. 반대가 가능합니다. 그 이유는 ObjectIS NOT AStringStringIS AObject입니다.

당신이이 keys의 내용이 수집String의인지 확신하는 경우에, 당신은 keys.toArray(new String[keys.size()]);

public String[] getAllKeys(){ 
    return keys.toArray(new String[keys.size()]); 
} 
0
`return Arrays.copyOf(keysCopy, keysCopy.length, String[].class);` 
0

Object[]String[] 아니다 사용할 수 있습니다.

관련 문제