有课堂演员的问题。请告诉我如何施展这个。我希望ArrayList<CharSequence>
名为CharSequence[]
。{/ p>。Contacts
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);
}
答案 0 :(得分:5)
试试这个:
Contacts = contacts.toArray(new CharSequence[contacts.size()]);
虽然,我建议您将Contacts
重命名为其他内容,也许contactsArray
。有两个原因: 1) Java变量名称通常以小写字母开头。 2)您有另一个名为contacts
的变量,定义第二个变为Contacts
将使代码更难以阅读和理解,因为这两个名称不同 < / em>以第一个字母为例。
相关文件:
答案 1 :(得分:3)
toArray()
返回Object[]
类型的数组。 Object[]
和CharSequence[]
是不同的类型。如果您想要一个CharSequence
数组,则必须使用以下代码:
contactArray = contacts.toArray(new CharSequence[contacts.size()]);
有关详细信息,请参阅the javadoc。
请注意Contacts
违反了Java命名约定,并且有两个变量,一个名为contacts
而另一个名为Contacts
,这实际上是一个坏主意(除非您需要代码尽可能地难以理解。)