[英]Issue converting java.lang.object to Integer
嗨,我正在用Spring MVC和Hibernate開發一個Java Web項目。 我在carList中有汽車清單。 現在,我想檢索每輛汽車的汽車類型。 因此,我初始化了另一個列表carType。 然后循環進入carList並將汽車類型附加在carType列表中。 當我在carType中輸出值存儲時,它給出[Ljava.lang.Object; @ 255a8ce4。 有人能幫我嗎? 列表的類型應該是對象。 因為我將此列表發送到Birt報告中,以pdf顯示。
List<Object> carList=getCarService().retrieveAllCarsAssignedToManagers(CarNo, DeptNo);
List<Object> carType = new ArrayList<Object> ();
for (Object carLists:carList) {
carType.add(getcarService().retrieveAllCarType(Integer.valueOf(carLists.toString())));
}
for (int i = 0;i < carType.size(); i++) {
System.out.println("Cars: " + carType.get(i));
}
您得到Ljava.lang.Object;@255a8ce4.
因為您的方法retrieveAllCarType
返回一個數組或列表,而不是您所期望的。 當您將列表放入System.out.print時,它將在內部調用該列表的toString方法。 列表的類未實現toString方法,因此您將獲得默認的toString輸出。
嘗試System.out.println(java.util.Arrays.toString(carType.get(i).toArray()));
1)您定義List<Object> carType
,這里的對象表示列表可以包含所有內容,包括集合(如List
, Map
等)。
根據您的代碼,您應該將整數cartype放到列表中,但是將List<Object>
放到List<Object>
,那么List carType中的元素就是List<Object>
。 所以當你打電話
carType.get(i)
它返回一個列表!
如果可以確認carType是數字,則可以將carType定義為List<Integer>
,則永遠不能將List放在carType上,在carType中只允許使用Interger。
2)sysout一個對象將調用其默認的toString()
,您的輸出是List類型的默認toString()
。 它輸出類名及其哈希碼。
您提供的信息太少,無法在代碼中得到確切的問題。 但是我通過接受代碼和問題來分析了它。 在這里犯了一個錯誤
Integer.valueOf(carLists.toString()).
列表包含任何類型的信息,例如任何類型的對象(String, List, Map, Set)
而您正在嘗試將該列表轉換為Integer。 您應該嘗試刪除Integer.valueOf()
並檢查列表中包含的內容。
謝謝你的幫助。 我真的很感激 使用addAll而不是add設法解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.