2012-10-21 54 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,实在是一个糟糕的主意(除非你想你的代码,以尽可能不可读)。