invalid comparison: java.util.ArrayList and java.lang.String 异常分析及解决方法

发布时间 2023-04-18 14:06:10作者: 翘中之楚

nvalid comparison: java.util.ArrayList and java.lang.String 异常解决方法
异常原因
首先我们可以确定是在mybatis的xml中的 list 操作出现错误
然后发现在接收 list 的时候加了判断 list !=’’ ,导致 list(数组集合类型)和空字符串(字符串类型)进行比较,故报错
解决办法,对于list类型进行判空时,可以使用size()方法,查看列表中的元素个数。
错误
如下:

<if test="relationIdList != null and relationIdList!=''">
    and relation_id in
    <foreach collection="relationIdList" item="item" open="(" close=")" separator=",">
        #{item}
    </foreach>
</if>

正确

如下:

<if test="relationIdList != null and relationIdList.size() > 0">
    and relation_id in
    <foreach collection="relationIdList" item="item" open="(" close=")" separator=",">
    #{item}
    </foreach>
</if>

注意点:

// 列表中元素的个数 > 0 
relationIdList.size() > 0