2012-10-21 59 views
2

存在類轉換的問題。請告訴我如何施展此。我想在我的CharSequence[]這個ArrayList<CharSequence>名爲ContactsCharSequence ArrayList到charSequence鑄造

java.lang.ClassCastException(Android中):

CharSequence[] Contacts; 
List<CharSequence> contacts = new ArrayList<CharSequence>(); 


Contacts = (CharSequence[]) contacts.toArray(); 

for(CharSequence p : contacts) { 
    Log.i("log_tag", "AAAAAAAAAAAAAAAAAAA" + p); 
} 

回答

5

試試這個:

Contacts = contacts.toArray(new CharSequence[contacts.size()]); 

雖然,我會建議你重命名Contacts到別的東西,也許contactsArray。原因有兩個:1) Java變量名通常以小寫字母開頭。 2)你有另一個變量名爲contacts,定義第二個將是Contacts會使代碼更難以閱讀和理解,因爲兩個名稱不同只有由第一個字母的情況。


相關文檔:

+0

感謝建議我 –

+0

當然:-)很高興我能幫到你 – arshajii

3

toArray()返回Object[]類型的陣列。並且Object[]CharSequence[]是不同的類型。如果你想的CharSequence一個數組,你必須使用下面的代碼:

contactArray = contacts.toArray(new CharSequence[contacts.size()]); 

詳情請參閱the javadoc

注意Contacts違反了Java命名約定,並且有兩個變量,一個名爲contacts,另一個叫Contacts,實在是一個糟糕的主意(除非你想你的代碼,以儘可能不可讀)。