2

存在类转换问题。请告诉我如何铸造这个。我想ArrayList<CharSequence>在我CharSequence[]命名的Contacts.

java.lang.ClassCastException(在安卓中):

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


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

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

2 回答 2

5

试试这个:

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

虽然,我建议您重命名Contacts为其他名称,也许contactsArray. 这有两个原因:1) Java 变量名通常以小写字母开头。2)你有另一个名为 的变量contacts,定义第二个是Contacts将使代码更难阅读和理解,因为这两个名称在第一个字母的大小写上有所不同。


相关文件:

于 2012-10-21T12:37:20.963 回答
3

toArray()返回一个类型的数组Object[]。和是不同的类型Object[]CharSequence[]如果你想要一个数组CharSequence,你必须使用下面的代码:

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

有关更多详细信息,请参阅javadoc

请注意,这Contacts违反了 Java 命名约定,并且有两个变量,一个是 named contacts,另一个是 named Contacts,这确实是个坏主意(除非您希望代码尽可能不可读)。

于 2012-10-21T12:37:30.187 回答