码迷,mamicode.com
首页 > 其他好文 > 详细

不应该使用String.valueOf的场景

时间:2019-01-18 16:27:24      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:util   key   parameter   ltm   bug   desc   rom   接收参数   结果   

今天在接口中接收参数转换String时遇到一个巨大的坑,也是自己疏忽大意所致----

事情是这样的,项目中接口的公共入参对象为Map<String,Object>,而sql中需要的参数为String数组。

我习惯性的取出参数value后就用String.valueOf转换了一下切分为数组传了过去,结果在测试时发现无论该参数传null值还是不写,都不会被sql的非空判断拦截----

<!-- 查询图表数据,所有或单个 -->
    <select id="queryExhibitionInfo" resultMap="BaseResultMap"
        parameterType="java.util.List">
        select REPORT_TYPE,ELEMENT_KEY,ELEMENT_NAME,ELEMENT_DESC,ELEMENT_VALUE
        from
        TOOL_DOC_REPORT_CONF_T
        <if test="_parameter != null">
            where REPORT_TYPE in
            <foreach item="item" index="index" collection="array" open="("
                separator="," close=")">
                #{item}
            </foreach>
        </if>
    </select>

当时那个奇怪啊----打了个debug才发现,null被转换成字符串了!!!!

作为一个小白,一直以为转String就应该用String.valueOf,可以避免空指针----

现在才知道,toString()方法也是有适用场景的,这里使用toString()就不会出现这种情况了。一定要吸取教训!

不应该使用String.valueOf的场景

标签:util   key   parameter   ltm   bug   desc   rom   接收参数   结果   

原文地址:https://www.cnblogs.com/yanshiqaq/p/10287881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!