2014-09-26 262 views
-1

您好,我正在用spring mvc和hibernate开发一个java web项目。我有一个carList列表。现在我想检索每辆车的车型。所以我初始化另一个列表carType。然后循环进入carList并在carType列表中追加车型。当我在carType中输出值存储时,它会给出[Ljava.lang.Object; @ 255a8ce4。有人能帮我吗?列表的类型应该是对象。因为我将这份清单发送给birt报告以pdf格式显示。将java.lang.object转换为Integer的问题

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)); 
    } 
+0

你能解释一下'retrieveAllCarType'的返回类型是什么吗? – Jens 2014-09-26 07:53:59

+0

Integer.parseInt(String)而不是valueOf。 – 2014-09-26 07:56:49

+0

即使猜测也很少。请提供更多信息。 – 2014-09-26 07:57:50

回答

2

你得到Ljava.lang.Object;@255a8ce4.因为你的方法retrieveAllCarType返回一个数组或列表,而不是你期待什么。当你把你的列表放到System.out.print中时,它会在内部调用该列表的toString方法。列表的类没有实现toString方法,所以你得到默认的toString输出。

尝试System.out.println(java.util.Arrays.toString(carType.get(i).toArray()));

+0

retrieveAllCartype的返回类型是List Samantha 2014-09-26 08:07:27

1

1)您可以定义List<Object> carType,对象在这里是指列表中可以包含一切,包括集合(如ListMap等)。

根据你的代码,你应该把整数cartype到列表中,但你把List<Object>List<Object>,然后在列表carType元素是List<Object>。所以当你拨打电话

carType.get(i) 

它返回一个List!

如果您可以确认carType是一个数字,您可以将carType定义为List<Integer>,那么您绝对不能将List列入carType,carType中只允许使用Intergers。

2)sysout一个对象会调用默认的toString(),你的输出是List类型的默认toString()。它输出类名和它的哈希码。

0

您提供的信息太少,无法在代码中得到确切的问题。 但我通过接受你的代码和问题来分析它。有一个在

Integer.valueOf(carLists.toString()). 

名单持有任何类型的信息,如任何类型的对象(String, List, Map, Set)的和你想该列表转换为整数做了一个错误。您应该尝试删除Integer.valueOf()并检查列表中包含的内容。

0

感谢您的帮助。我真的很乐意。使用addAll而不是add来解决问题。