首页 > 其他分享 >NPE解决方案

NPE解决方案

时间:2022-09-02 00:22:44浏览次数:42  
标签:getChannelNo channelDao NPE 解决方案 thirdDataList getOne channelNo null

// 后台设置的渠道
String channelNo = channelDao.getOne().getChannelNo();
// 第三方拉取的数据
List<ThirdData> thirdDataList = httpClientUtils.getThirdDatas(DateUtils.today());
// 匹配过滤
thirdDataList.stream().filter(o ->channelNo.equals(o.getChannelNo())).collect(Collectors.toList());
// 批量入库
thirdDataDao.saveAll(thirdDataList);

上述四行代码的问题修复

  1.如果channelDao.getOne()为null会报错

  解决方案:

  1、使用防御性编程,提前返回(需根据具体业务场景而定)

// 如果channelNo是方法逻辑执行的必须元素,推荐用此方法
Channel channel = channelDao.getOne();
if (channel == null) {
    return;
}

  2.使用三目运算

tring channelNo = channelDao.getOne() == null ? "" : channelDao.getOne().getChannelNo();

  3.使用optionan函数返回空字符串

String channelNo = Optional.ofNullable(channelDao.getOne()).orElse("");

 

  2.thirdDateList如果为空,也会报错 channelNo如果返回为null,那么执行channelNo.equals(o.getChannelNo())会报NPE

解决方案:

  1.使用防御性编程,提前返回

if (CollectionUtils.isEmpty(thirdDataList)) {
    return;
}

  2.使用object下的

Objects.equals(channelNo, o.getChannelNo())
ObjectUtils.nullSafeEquals(o1,o2)

 

 

 

 

 

 

 

标签:getChannelNo,channelDao,NPE,解决方案,thirdDataList,getOne,channelNo,null
From: https://www.cnblogs.com/jerry-ming/p/16648304.html

相关文章

  • maven报错一站式解决方案
    maven报错一站式解决方案一、本地maven玩耍三部曲适配场景:项目需要的maven依赖本地仓库已经有了1.先确认项目引用默认的maven配置是否正确找到maven项目的父级pom.xml......
  • MATLAB R2019b安装 及其启动慢的解决方案
       MATLAB是一款商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。可以进行矩阵运算、......
  • 超声波一体气象站测风测雨测温湿气象监测解决方案轻松搞定
    超声波一体气象站测风测雨测温湿气象监测解决方案轻松搞定超声波气象站是我公司结合多年气象产品开发经验,根据现场实际情况开发的一款多功能自动气象站。该产品集温度、湿......
  • 1Mybatis-Plus中逻辑删除与唯一索引冲突的解决方案
    1、背景用户删除后时重复添加同名用户报错,原因是因为删除用户时使用的是逻辑删除,并未从数据库中真实删除,由于用户信息还是比较重要的。2、关键代码片段Controller/......
  • webpack css-loader模块化导致的antd样式不好用解决方案
    css-loader模块化会导致antd样式文件无效,解决的方式就是排除node_modules下的目标文件就可以如果你用的less就可以按以下方式来配置{test:/\.less$/,inclu......
  • 网页上传文件夹的解决方案
    ​前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对Http协议较模糊,故这次采用渐进的方式来学习文件上传的原......
  • 数据机房 | 智慧数据中心Web3D可视化物联网系统解决方案
    智慧数据中心建设背景信息技术高速发展的今天,人类的活动时时刻刻都在产生着信息和数据,这些信息和数据的交换、处理、存储、管理与应用离不开安全稳定高效的运行环境——数......
  • 城市防汛可视化系统解决方案
    在我国频繁发生的自然灾害中,气象灾害占据绝大部分。汛期是指河水在一年中有规律显著上涨的时期。虽说汛期不等于水灾,但是水灾一般都在汛期。我国各地由于降雨时间的差异,汛......
  • 解决方案:有效的字谜(Python)
    解决方案:有效的字谜(Python)给定两个字符串s和吨,返回真的如果吨是一个字谜s,和错误的否则.一个字谜是通过重新排列不同单词或短语的字母而形成的单词......
  • Maven找不到依赖终极解决方案
    离线网络环境中拷贝maven仓库到离线机器,使用maven加载项目,maven编译jar包找不到或者提示jar包信息不可用,现提供以下本人解决的方式,亲测可用基础解决方案常规idea的maven......