list<>中的类型的作用是什么?

list<>中的类型的作用是什么?mybatis的xml文件中设置的resultType是Vo,对应接口中的方法是List<UserEntity> queryOrderAndUserByType();

测试输出的是Vo的数据,那List<>尖括号总的数据类型起什么作用呢?

xml文件:

<select id="queryOrderAndUserByType" resultType="orderAndUserVo">
    SELECT o.id,o.order_Number orderNumber,o.createtime,o.describer,o.user_id userId,u.tid,u.uname
    FROM orders o,t_user u WHERE u.tid=o.user_id
</select>

对应接口类:

List<OrdersEntity> queryOrderAndUserByType();

测试类:

@Test
public void queryOrderAndUserByType(){
    SqlSession sqlSession = sqlSessionFactory.openSession();
    OrdersMapper mapper = sqlSession.getMapper(OrdersMapper.class);
    List<OrdersEntity> ordersEntities = mapper.queryOrderAndUserByType();
    for (OrdersEntity ordersEntity : ordersEntities) {
        System.out.println(ordersEntity);
    }
}

输出结果:

list是一种动态数组集合,默认情况是可以存放任何对象Object,获取数据也是object类型对象,这样操作比较麻烦,每次取数据都要强行转换数据类型,但如果定义list<具体类名>时指明了类型就不需要强制转换,会自动转换为该类型对象。

list就是一个容器,可以理解为数据库,只是数据存储不是永久性的。你想往容器中放什么类型,list<>中就指定什么类型。 如题中所说,你集合中放的是OrdersEntity对象,则查询结果,输出后,也是OrderEntity对象信息。

你看下OrderEntity类中的toString方法,是不是return “OrderAndUserVo{xxx}”

xml返回的数据主要以 

resultType="orderAndUserVo"

指定的返回结果为主,List<?>  里面的泛型只是为了数据的转化用的,比如  <?> result,编译器也会自己去推断数据的返回类型,如果不匹配的话,会报错,提示你去强行转换 (?) result

List<>,尖括号里面主要是利用了泛型,在不指定类型的时候,里面是可以插入仁和的类型。如果指定了类型,编译阶段就可以指定是否出错,不用等到运行阶段。 System.out.println(ordersEntity);这句话,ordersEntity调用的其实是这个类的tostring方法,如果没有重写,返回的是内存地址。如果重写了这个方法,按照重写的返回。

List<OrdersEntity>是对 mapper.queryOrderAndUserByType()获取的结果类型匹配。
resultType="orderAndUserVo"是mapper的返回结果。

你类型不匹配,但是没有报错,是不是你的orderAndUserVo实体类中有OrdersEntity属性

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632