簡體   English   中英

將java.lang.object轉換為Integer時出現問題

[英]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 ,這里的對象表示列表可以包含所有內容,包括集合(如ListMap等)。

根據您的代碼,您應該將整數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.

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