[英]Can I cast an object to a string from an object array of strings. Getting classCastException
[英]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.