当前位置: 首页 > article >正文

Java判空小细节

一、问题

问题:我们新增数据的时候,我们将新增接口与更新接口融合在同一个接口,使用Mybatis-plus的saveOrUpdate接口,进行新增

二、代码:

代码如下:

public Boolean save(CalculationTypeDTO calculationTypeDTO) {
        CalculationType calculationType = new CalculationType();
        BeanUtils.copyProperties(calculationTypeDTO, calculationType);
        //新增接口
        if(calculationTypeDTO.getId().isEmpty()) {
            calculationType.setDeleted(Constant.NOT_DELETE);
        }else{
            calculationType.setCreateTime(new Date());
        }
        calculationType.setUpdateTime(new Date());
        return saveOrUpdate(calculationType);
    }

当我们调用接口的时候,响应数据如下:

控制台也不报错,debug调试,发现,新增数据的时候根本没有进入if条件中去 

三、下面是新增时的json数据:

问题所在:当我们新增数据的时候,没有传入id值,此时id:null;我们点入isEmpty方法后查看底层代码

    /**
     * Returns {@code true} if, and only if, {@link #length()} is {@code 0}.
     *
     * @return {@code true} if {@link #length()} is {@code 0}, otherwise
     * {@code false}
     *
     * @since 1.6
     */
    public boolean isEmpty() {
        return value.length == 0;
    }

四、分析 

null是不能使用isEmpty()函数进行判断,压根不能进入方法,只能报异常了

五、解决

我们在判断字符串是否为空的时候,先进行判空处理,即可,或者直接判空就行

   CalculationType calculationType = new CalculationType();
        BeanUtils.copyProperties(calculationTypeDTO, calculationType);
        //新增接口
        if(calculationTypeDTO.getId() == null) {
//        if(calculationTypeDTO.getId() == null || calculationTypeDTO.getId().isEmpty()) {
            calculationType.setDeleted(Constant.NOT_DELETE);
        }else{
            calculationType.setCreateTime(new Date());
        }
        calculationType.setUpdateTime(new Date());
        return saveOrUpdate(calculationType);


http://www.kler.cn/a/615517.html

相关文章:

  • IP大洗牌ipv6强势来袭!!!【ipv6配置及应用】
  • 5G核心网(5GC)中TDD(时分双工)和FDD(频分双工)
  • BUUCTF-web刷题篇(3)
  • 缓存 vs 分布式锁:高并发场景下的并发控制之道
  • 和鲸科技医疗智能体上线联想擎天平台:赋能医疗服务效率与质量
  • Ubuntu社区论坛正确网址
  • 蓝桥杯 14 天 十五届蓝桥杯 数字诗意
  • Labview学习记录
  • 浦林成山轮胎怎么样?有何优势?
  • 质因数个数--欧拉函数中统计纯素数
  • PHP 包含:深入理解与最佳实践
  • 解决centos部署的java项目上传文件成功后,访问403
  • 如何看待职场中的“向上管理”
  • 黑盒测试的等价类划分法(输入数据划分为有效的等价类和无效的等价类)
  • 【免费】2007-2019年各省地方财政科学技术支出数据
  • 买卖股票的最佳时机(121)
  • Pytorch torch.repeat_interleave函数介绍
  • 用war解压缩.7zip文件解压缩正在进行但是结束后文件消失了
  • python专题1-----判断一个变量是否是字符串类型
  • RK3588,V4l2 读取Gmsl相机, Rga yuv422转换rgb (mmap)