将对象转换为字符串获取无法转换错误

时间:2013-12-18 06:19:34

标签: java

我有一个对象列表列表,其中第四个索引它有整数列表[1,2,3,4,5] 现在我想将列表放入逗号分隔的字符串中。 下面是我的尝试,但它给出错误,因为无法施放。

for(Object[] objArr : relationshipInfo){
if(null != objArr[4]){
String groupedItemIds = (String)objArr[4];
}

怎么做?

9 个答案:

答案 0 :(得分:1)

请尝试以下操作: - 使用 toString()

String output = relationshipInfo.toString();
output = output.replace("[", "");
output = output.replace("]", "");
System.out.println(output);


[UPDATE]

如果您只想要第四个对象,请尝试:

    Object[] objArr = relationshipInfo.toArray();
    String groupedItemIds = String.valueOf(objArr[4]);

答案 1 :(得分:0)

无法将整数数组或整数强制转换为字符串。

尝试

for(Object[] objArr : relationshipInfo){
if(null != objArr[4]){
 String groupedItemIds =  new String (objArr[4]); // or String.valueOf(objArr[4]);
}

<强>更新

如果第四个索引是一个数组,那么试试

String groupedItemIds = Arrays.asList(objArr[4]).toString();

将为您提供逗号分隔字符串

答案 2 :(得分:0)

您无法将对象强制转换为不可转换类型

for(Object[] objArr : relationshipInfo){
if(null != objArr[4]){
List<Integer> groupedItemIds = (List<Integer)objArr[4];;

//Loop over the integer list
}

答案 3 :(得分:0)

除非Object确实是String,否则不能将强制类型转换为String。相反,您可以执行以下操作 -

在其上调用toString()。在你的班级中覆盖它。

答案 4 :(得分:0)

试试这个:

for(Object[] objArr : relationshipInfo)
{
      if(null != objArr[4])
       {
          String groupedItemIds = String.valueOf(objArr[4]);
       }
}  

参考:

public static String valueOf(Object obj)

返回Object参数的字符串表示形式 Link

使用toString()String.valueOf()

之间的区别

如果您使用toString()对象或空值调用null,则会获得NullPointerExcepection,而使用String.valueOf()则不需要检查null 1}}值。

答案 5 :(得分:0)

你想要“以逗号分隔的字符串”。所以,你迭代第四个索引并读取每个整数并执行“”+ int1 +“,”+ int2等等。你可以通过覆盖你的toString()方法来完成这个(in)..

答案 6 :(得分:0)

你可以尝试:

String groupedItemIds = Arrays.asList( objArr[4] ).toString();

这将产生:groupedItemIds = "[1,2,3,4,5]"

答案 7 :(得分:0)

看起来您使用的数组不是列表,在这种情况下您可以使用:

String groupedItemIds = java.util.Arrays.toString(objArr[4]);

答案 8 :(得分:0)

我用belwo代码解决了我的问题

byte[] groupedItemIdsArr = (byte[])objArr[4];
String groupedItemIds = new String(groupedItemIdsArr);