Java Can';t返回转换为字符串[]的对象[]

Java Can';t返回转换为字符串[]的对象[],java,arrays,object,java.lang.class,Java,Arrays,Object,Java.lang.class,为什么这给了我Ljava.lang.Object;无法强制转换为[Ljava.lang.String???这是因为您有对象数组,object[]无法强制转换为String[]。相反是可能的。这是因为对象字符串和字符串对象 如果确定键的内容是字符串的集合,则可以使用键.toArray(新字符串[keys.size()]); 对象[]不是字符串[]试试这个,它可以工作 `return Arrays.copyOf(keysCopy, keysCopy.length, String[].class);`

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

这是因为您有对象数组,
object[]
无法强制转换为
String[]
。相反是可能的。这是因为
对象
字符串
字符串
对象

如果确定
键的内容是
字符串的集合,则可以使用
键.toArray(新字符串[keys.size()]);


对象[]
不是
字符串[]

试试这个,它可以工作

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

有关更多信息,请阅读此[post]()

使用重载方法
toArray(T[]arr)
流的可能副本:
keys.stream().toArray(String[]::new)
public String[] getAllKeys(){
    return keys.toArray(new String[keys.size()]);
}
`return Arrays.copyOf(keysCopy, keysCopy.length, String[].class);`
public String[] getAllKeys (){
Object[] keysCopy = new Object[keys.size()];
keysCopy = keys.toArray(new String[0]);
return (String[]) keysCopy;
}