您正在使用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));
}
答案 0 :(得分:2)
您得到Ljava.lang.Object;@255a8ce4.
,因为您的方法retrieveAllCarType
会返回一个数组或列表,而不是您期望的那样。当您将列表放入System.out.print时,它会在内部调用该列表的toString方法。列表的类没有实现toString方法,因此您获得默认的toString输出。
尝试System.out.println(java.util.Arrays.toString(carType.get(i).toArray()));
答案 1 :(得分:1)
1)您定义List<Object> carType
,此处的对象意味着列表可以包含所有内容,包括集合(例如List
,Map
等)。
根据您的代码,您应该将整数cartype放到列表中,但是将List<Object>
放到List<Object>
,然后List carType中的元素是List<Object>
。所以当你打电话时
carType.get(i)
它返回一个List!
如果您可以确认carType是一个数字,您可以将carType定义为List<Integer>
,然后您永远不能将List放入carType,carType中只允许使用Intergers。
2)sysout一个对象将调用其默认的toString()
,您的输出是List类型的默认toString()
。它输出classname及其哈希码。
答案 2 :(得分:0)
您提供的信息太少,无法在代码中获得确切的问题。 但是我通过接受你的代码和问题来分析它。
有一个错误Integer.valueOf(carLists.toString()).
列表包含任何类型的信息,例如任何类型的对象(String, List, Map, Set)
,并且您尝试将该列表转换为整数。您应该尝试删除Integer.valueOf()
并检查列表包含的内容。
答案 3 :(得分:0)
谢谢你的帮助。我真的很感激。使用addAll而不是添加来管理解决问题。