Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对象[]的ClassCastException字符串_Java_Classcastexception - Fatal编程技术网

Java 对象[]的ClassCastException字符串

Java 对象[]的ClassCastException字符串,java,classcastexception,Java,Classcastexception,我正在使用以下代码: { // ... String[] roles = new String[resultList.size()]; int i=0; for (Iterator<Object[]> iter = resultList.iterator(); iter.hasNext();) { roles[i] = new String(); Object[] objArr = iter.next();

我正在使用以下代码:

{
    // ...
    String[] roles = new String[resultList.size()];
    int i=0;
    for (Iterator<Object[]> iter = resultList.iterator(); iter.hasNext();) {
        roles[i] = new String();
        Object[] objArr = iter.next();
        roles[i] = objArr[0].toString();
        i++;
    }
return roles;
}
{
// ...
String[]角色=新字符串[resultList.size()];
int i=0;
for(迭代器iter=resultList.Iterator();iter.hasNext();){
角色[i]=新字符串();
Object[]objArr=iter.next();
角色[i]=objArr[0]。toString();
i++;
}
返回角色;
}

但是,我得到了一个
ClassCastException
语句,表示无法从java.lang.String强制转换到对象[]。

尝试将
对象
列表转换为
字符串
数组:

    // Create an object list and add some strings to it
    List<Object> objectList = new ArrayList<>();
    objectList.add("A");
    objectList.add("B");
    objectList.add("C");

    // Create an String array with the same size of the object list
    String[] stringArray = new String[objectList.size()];

    // Iterate over the object list to fill the string array, invoking toString() in each object to get a textual representation from it
    for (int i = 0; i < objectList.size(); i++) {
        Object object = objectList.get(i);
        stringArray[i] = object.toString();
    }

    // Iterate over the string array to print the strigs
    for (String string : stringArray) {
        System.out.println(string);
    }
//创建一个对象列表并向其中添加一些字符串
List objectList=new ArrayList();
对象列表。添加(“A”);
对象列表。添加(“B”);
对象列表。添加(“C”);
//创建与对象列表大小相同的字符串数组
String[]stringArray=新字符串[objectList.size()];
//迭代对象列表以填充字符串数组,在每个对象中调用toString()以从中获取文本表示
对于(int i=0;i
你能做到这一点吗:

Object[] objArr = iter.next();
为此:

  String[] objArr = (String[]) iter.next();
试试这个:

{
    // ...
    String[] roles = new String[resultList.size()];
    int i=0;
    for (Iterator<String> iter = resultList.iterator(); iter.hasNext();) {            
        roles[i] = iter.next();
        i++;
    }
    return roles;
}
{
// ...
String[]角色=新字符串[resultList.size()];
int i=0;
对于(迭代器iter=resultList.Iterator();iter.hasNext();){
roles[i]=iter.next();
i++;
}
返回角色;
}

能否提供stacktraceString是一个对象,但所有对象都不是字符串。您不能将对象转换为字符串。哪一行会转换ClassCastException?它是否真的说“不能从java.lang.String转换为对象”(这应该不是问题),或者“不能从java.lang.String转换为对象[]”?java.lang.ClassCastException:java.lang.String不能转换为[Ljava.lang.Object;代码中的第5行抛出Exception它是一个
字符串列表
,他试图(隐式)将元素强制转换为
对象[]