我能将一个对象数组中的对象转换成字符串吗?遇到了ClassCastException错误。

3

我可能很傻,但这让我疯了。我已经搜索过了,但相对来说我是一个新手程序员,有些超纲了。如果您能帮忙就请帮帮我吧!bar参数正在获取一个arraylist.toArray(),里面装满了字符串。

public bar(Object[] contents) {

    for (Object o : contents) {
        String s = (String) o;
        if (s == null) {
            System.out.println("newline"); //checking
        } else  {
            try {
                arrayContents.add(new line(s));

            } catch (Exception ex) {
                System.out.println("error printing note: " + s + " " + ex + " in bar " + i);
            }
        }
        i++;

    }
//        System.out.println(arrayContents);
}

这是一个 ArrayList<String> 吗?另外,请贴出完整的堆栈跟踪。 - Sotirios Delimanolis
这不是完美的答案,但下面的答案是完美的。我将在未来发布堆栈跟踪。 - juju
1个回答

6

改为这样做

    String s = String.valueOf(o);

如果一个对象不是字符串对象,那么你不能将其转换为字符串。相反,你需要调用该对象的toString方法 - 除非该对象为nullString.valueOf()可以解决这个问题。

public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接