无法返回作为String []的对象[]

时间:2014-04-24 09:23:55

标签: java arrays object java.lang.class

public String[] getAllKeys (){

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

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

为什么这会给我Ljava.lang.Object;无法转换为[Ljava.lang.String ??

4 个答案:

答案 0 :(得分: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()]);
}

答案 1 :(得分:0)

`return Arrays.copyOf(keysCopy, keysCopy.length, String[].class);`

答案 2 :(得分:0)

Object[]不是String[]

答案 3 :(得分:0)

试试这个,它有效。

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

有关详情,请阅读[post](How to convert object array to string array in Java