1
public String[] getAllKeys (){

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

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

为什么这给了我 Ljava.lang.Object;不能转换为 [Ljava.lang.String??

4

4 回答 4

2

这是因为您有对象数组并且Object[]不能强制转换为String[]. 反过来也是可能的。这是因为Object IS NOT A StringString IS A Object

如果您确定的内容keys是 的集合String那么您可以使用keys.toArray(new String[keys.size()]);

public String[] getAllKeys(){
    return keys.toArray(new String[keys.size()]);
}
于 2014-04-24T09:27:31.210 回答
0

Try this, it works.

public String[] getAllKeys (){
Object[] keysCopy = new Object[keys.size()];
keysCopy = keys.toArray(new String[0]);
return (String[]) keysCopy;
}

For more you can read this [post] (How to convert object array to string array in Java)

于 2014-04-24T09:58:42.023 回答
0
`return Arrays.copyOf(keysCopy, keysCopy.length, String[].class);`
于 2014-04-24T09:27:58.513 回答
0

一个Object[]不是一个String[]

于 2014-04-24T09:28:01.363 回答