将Object []转换为String []错误

use*_*701 1 java casting object

我需要这段代码,但是我收到了这个错误:

Ljava.lang.Object; 无法强制转换为java.lang.String

public Object[] getAllKeys (){

    return keys.toArray(new Object[keys.size()]); 
}

public String[] getNames (){

    return ((String[])super.getAllKeys()); <- Error here. Can't cast, why?
}
Run Code Online (Sandbox Code Playgroud)

Tim*_*m B 6

数组的类型是Object[]这样的,它不能知道它只包含Strings.很有可能将非String对象添加到该数组.结果是不允许演员表演.

您可以返回Object[]然后将该数组中的每个对象转换为字符串.ie (String)arr[0]或者您可以创建一个新String[]数组并在返回之前复制所有元素.