将java.lang.object转换为Integer的问题

时间:2014-09-26 07:49:07

标签: java spring hibernate primefaces birt

您正在使用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));
    }

4 个答案:

答案 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,此处的对象意味着列表可以包含所有内容,包括集合(例如ListMap等)。

根据您的代码,您应该将整数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而不是添加来管理解决问题。