如何将List <! - ? - >转换为List <classname>

时间:2016-08-12 07:33:38

标签: java generics collections

将列表转换为List

时,我遇到了一些问题
List<ContentDes> contentDes_ls  = new ArrayList<ContentDes>();
        logger.info("in getContentDes ");

        List<?> ls  = ho.getResultListByLimit(sql,limit);
        contentDes_ls = (List<ContentDes>)ls;
    logger.info(" size of content "+contentDes_ls.size());
    for (ContentDes contentDes : contentDes_ls) {
        logger.info(contentDes.getPricetag());
        logger.info(contentDes.getPrv());
    }

当我得到List<SomeClass>的大小时它工作得很好但是当我 访问SomeClass的getter和setter我得到了异常

输出:

size of content 2

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.SomeClass] 

1 个答案:

答案 0 :(得分:3)

在代码中的任何地方都没有提到SomeClass,所以我认为你的意思是ContentDes。

您的列表似乎不包含ContentDes实例。异常表示项目不是类型Object[]。当您尝试将项目迭代为ContentDes时,这会导致ClassCastException。