当前位置: 首页 > 面试题库 >

java.lang.ClassCastException:无法将java.lang.String强制转换为[Ljava.lang.Object

岑毅庵
2023-03-14
问题内容

我正在运行以下查询。它显示一条错误消息。如何解决这个错误?

        List<Route>routeList=null;
        List<?> companyList = session.createSQLQuery ("select name " +
                                                  "from company "+
                                                  "where company_id= " + companyId).list();                 
        if(companyList.size() <= 0){
            //throw(new AppException(1018,ErrorMessages.getString("INVALID_USER_ID"))); 
        }


        routeList = new ArrayList<Route>(companyList.size());
    Route vgDetails=null;

        for (int i = 0; i < companyList.size(); i++) {

            vgDetails = new Route(); 
            Object[] row = (Object[])companyList.get(i);                                 
            vgDetails.setRouteName ((String)row[0]);                     
            routeList.add(vgDetails);       
        }                   
    session.getTransaction().commit();
        return routeList;
    }

错误是:

java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.Object;
    at com.claystone.server.user.UserListServiceImpl.getParticipantsDestination(UserListServiceImpl.java:902)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:166)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

问题答案:

您可以这样写:

vgDetails = new Route();                                 
vgDetails.setRouteName ((String)companyList.get(i));

companyList 已经是一个字符串列表,因为您只选择了一列。

此外,正如Thilo的答案所暗示的那样,您可以将结果直接转换为a List<string>而不是使用List<?>



 类似资料:
  • 问题内容: 我有MainActivity类,该类具有实例化ApplicationBar的方法,所有其他Activity都从此继承,因此他们可以使用此方法。 但是我也有一个MapHolder类,它必须从xml中扩展,因为它使用来显示地图。问题是如果我从不显示ApplicationBar选项卡扩展它,并且从MainActivity扩展它而不显示地图,则出现此错误: 问题答案: 您正在尝试将a强制转换为

  • 问题内容: 我遇到以下错误: 用下面的代码 我为什么不能这样做? 问题答案: 问题来自杰克逊。如果没有足够的信息反序列化到哪个类,则使用。 既然你不通知你的元素类型的杰克逊,它不知道你要反序列化到的秒。因此,它恢复为默认值。 相反,您可能可以使用,然后以比保证价格允许的方式丰富的方式进行处理。像这样:

  • 问题内容: 我最近升级了一个应用程序,使其可以使用JAVA 7和JBoss 7.1.1运行。该应用程序最初是在JAVA 5和Jboss 4.2.2上开发的。该应用程序使用hibernate3进行持久化。 在新平台上,尝试插入具有上述错误的带有CLOB字段的表时,应用程序失败。我正在使用ojdbc14.jar(后端数据库Oracle 10.2.0.3) 这些是我在jboss 7.1.1配置中验证的:

  • 问题内容: 我使用泛型创建了接口和类的层次结构,并弄乱了所有内容。 最顶级的类是AbstractJpaEntity,它由所有域实体扩展 ProductTypeDomain类类似于标记类,用于分离出几个表实体。 接口“ GenericDao”的定义 抽象类GenericDaoImpl(此类具有通用功能,例如persist,merge) 接口ProductTypeDao Spring存储库类Produ

  • 问题内容: 我想使用本机sql返回行数。但是控制台说我。怎么了?这是我的方法: 问题答案: 使用方法,而不是将其强制转换为: 好像返回。一种选择是强制转换为: 但是不要这样做。而是使用Nambari在评论中提供的方式。我不是Hibernate的用户,因此无法提供特定于Hibernate的解决方案。

  • 问题内容: 我有一个包含以下定义: 值定义如下: 在活动中被调用如下: 到目前为止,一切都很好,但是当代码被实际调用时,我得到了这个错误: 这个错误对我来说没有任何意义。该列表仅包含可以转换为int的值,并且xml文件和代码中给出的默认值也仅表示一个数字。那么,为什么会出现此错误,以及如何解决呢? 问题答案: 如果您查看内部的内容,将会发现问题: 您的键“ limitSetting”返回一个不能转