簡體   English   中英

將對象轉換為字符串獲取無法轉換錯誤

[英]convert object to string getting can not cast error

我有一個對象列表List,其中在第4個索引處它具有整數[1,2,3,4,5]的列表。現在,我想將列表轉換成逗號分隔的字符串。 下面是我的嘗試,但由於無法投射而產生錯誤。

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

這個怎么做?

嘗試以下操作:-使用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]);

整數數組或整數不能強制轉換為字符串。

嘗試

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();

這將為您提供一個逗號分隔的字符串

您不能將對象強制轉換為不兼容的類型

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

//Loop over the integer list
}

除非對象確實是字符串,否則不能將類型轉換為字符串。 相反,您可以執行以下操作-

調用toString() 在您的課程中覆蓋它。

嘗試這個 :

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

參考:

public static String valueOf(Object obj)

返回Object參數的字符串表示形式。
鏈接

使用toString()String.valueOf()之間的區別

如果使用null對象或空值調用toString() ,則將獲得NullPointerExcepection而使用String.valueOf()則不必檢查null值。

您想要“逗號分隔的字符串”。 因此,您遍歷第4個索引並讀取每個整數,然后執行““ + int1 +”,“ + int2等。”您可以通過重寫toString()方法來執行此操作。

您可以嘗試:

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

這將產生: groupedItemIds = "[1,2,3,4,5]"

看起來您使用的是數組而不是列表,在這種情況下可以使用:

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

我通過belwo代碼解決了我的問題

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM