使用String.valueOf()的坑

news2025/2/26 20:32:09

说明:记录一次使用String.valueOf()的坑,以下是一段有问题的代码:

	String count = String.valueOf(listData.get(0).get(0).get("count");
	if (StringUtils.isBlank(count) || "0".equals(count)) {
	    result.setResult(page);
	    return result;
	}

问题分析

其中,listData是调用数据库存储过程,返回的数据集合,是List<List<Map<String,String>类型的,表示多个结果集,每个结果集有多条数据,而结果集1,通常表示记录的总条数,即count;

这段代码就是将第1个结果集中的count字段值获取出来,并转换为字符串。

正常情况,这段代码是没有问题的,后面也对count的值做了校验,如果count值为null或者0(StringUtils.isBlank(count) ),都不会往下走;


现在的问题是,当listData中,第1个结果集中没有count时,这段代码就有问题了。

在这里插入图片描述

问题是这个方法,当调用存储过程返回的结果集中,没有count这个结果集,String.valueOf()里面的内容是null,所以String count会得到一个“null”字符串,而在下面的if判断中,StringUtils.isBlank(count)的返回结果会是false,这样就跳过了对count的空值判断

String.valueOf()

为什么null会被转为一个字符串呢?我们分析一下这个方法,如下:

	// 方式一:将一个对象赋值为null,然后调用String.valueOf()方法
	String str = null;
	System.out.println(String.valueOf(str));
	
	// 方式二:直接将null作为参数传入
	System.out.println(String.valueOf(null));

这两种方式,前一种会打印“null”,后一种会报空指针异常;

在这里插入图片描述

也就是说,声明了的对象,赋值为null,作为参数传入String.valueOf()会返回null字符串。所以在上面的代码中,不能使用String.valueOf()将取出的值再转为String类型。修改如下:

	String count = listData.get(0).get(0).get("count");
	if (StringUtils.isBlank(count) || "0".equals(count)) {
	    result.setResult(page);
	    return result;
	}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1281786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLM推理部署(五):AirLLM使用4G显存即可在70B大模型上进行推理

众所周知&#xff0c;大模型的训练和推理需要大量的GPU资源&#xff0c;70B参数的大模型需要130G的GPU显存来存储&#xff0c;需要两个A100&#xff08;显存为100G&#xff09;。 ​ 在推理过程中&#xff0c;整个输入序列也需要加载到内存中进行复杂的“注意力”计算&am…

【WinForm.NET开发】演示:创建一个图片查看器 Windows 窗体应用

本文演示将创建一个 Windows 窗体应用程序&#xff0c;用于加载和显示图片。 Visual Studio 集成设计环境 (IDE) 提供了创建应用所需的工具。 1、先决条件 若要完成本教程&#xff0c;必须具有 Visual Studio。 请访问Visual Studio 下载页获取免费版本。 2、创建 Windows …

C语言扫雷游戏

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、扫雷游戏的分析和设计1.1扫雷游戏的功能说明1.2数据结构的分析1.3文件结构设计 二、扫雷游戏的代码实现总结 前言 详细介绍扫雷游戏的思路和实现过程。 一…

基于Java SSM框架实现美好生活九宫格日志网站系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现美好生活九宫格日志网站系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人…

风险评估有什么用

风险评估就是量化测评某一事件或事物带来的影响或损失的可能程度。 为什么要做风险评估? 1.更准确地认识风险-系统地评估资产风险事件发生的概率大小和概率分布&#xff0c;及发生后损失的严重程度。帮助区分主要风险和次要风险。 2.保证规划的合理性和可行性-正确反映各风…

【开源】基于Vue.js的智慧社区业务综合平台

文末获取源码&#xff0c;项目编号&#xff1a; S 077 。 \color{red}{文末获取源码&#xff0c;项目编号&#xff1a;S077。} 文末获取源码&#xff0c;项目编号&#xff1a;S077。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 业务类型模块2.2 基础业务模块2.3 预…

网络安全--网络环境构成,系统的安全

2. 网络攻防环境 目标 了解攻防环境构成了解入侵检测系统&#xff08;平台&#xff09;的部署位置 2.1. 环境构成 2.1.1. 环境框图 一个基本的网络攻防实验环境包括&#xff1a;靶机、攻击机、入侵检测分析系统、网络连接四部分组成。 一个基础的网络攻防实验环境需要如下…

Java 学习之多态

多态的概念 多态 晚绑定。 所谓多态&#xff0c;就是父类型的引用可以指向子类型的对象&#xff0c;或者接口类型的引用可以指向实现该接口的类的实例。 不要把函数重载理解为多态。因为多态是一种运行期的行为&#xff0c;不是编译期的行为。 多态&#xff1a;父类型的引用可…

保育员个人简历精选7篇

想要在保育员职位的求职过程中脱颖而出吗&#xff0c;参考这7篇精选的保育员简历案例&#xff01;无论您的经验如何&#xff0c;都能找到适合自己的简历样式及参考内容。 保育员个人简历模板下载&#xff08;可在线编辑制作&#xff09;&#xff1a;来幻主简历&#xff0c;做好…

Shell循环:expect(二)

expect实战&#xff1a;公钥推送 一、准备工作&#xff1a;安装expect&#xff0c;装备公钥 二、通过shell循环判断主机在线 #!/bin/bash #脚本编写 #创建一个IP地址文件 >ip.txt #使用for循环ping测试主机是否在线 for i in {3..254} do{ip192.168.151.$iping -c1 -W…

矢量图形设计软件CorelDRAW 2023 mac界面说明

CorelDRAW 2023 mac是一款专业的矢量图形设计软件&#xff0c;由Corel公司开发。它提供了广泛的创意工具和功能&#xff0c;旨在满足设计师、艺术家和创意专业人士的需求。 CorelDRAW 2023具有直观的用户界面和工作流程&#xff0c;使用户能够轻松创建各种类型的图形设计&#…

三十六、seata的部署和集成

seata的部署和集成 一、部署Seata的tc-server 1.下载 首先我们要下载seata-server包&#xff0c;地址在http&#x1f615;/seata.io/zh-cn/blog/download.html 当然&#xff0c;资料也准备好了&#xff1a; 2.解压 在非中文目录解压缩这个zip包&#xff0c;其目录结构如下…

如何开启Windows Server 2016 远端桌面

使用GUI 设定 服务器管理器–> 本地服务器–> 远端桌面 启用远端桌面 远端–> 允许远端连线至此电脑 会提示防火墙设定跟电源设定 防火墙之前已经关闭了 完成

线程中出现异常的处理

目录 前言 正文 1.线程出现异常的默认行为 2.使用 setUncaughtExceptionHandler() 方法进行异常处理 3.使用 setDefaultUncaughtExceptionHandler() 方法进行异常处理 4.线程组内处理异常 5.线程异常处理的优先性 总结 前言 在紧密交织的多线程环境中&#xff0c;异…

游戏配置表的导入使用

游戏配置表是游戏策划的标配&#xff0c;如下图&#xff1a; 那么程序怎么把把这张配置表导入使用&#xff1f; 1.首先&#xff0c;利用命令行把Excel格式的文件转化成Json格式&#xff1a; json-excel\json-excel json Tables\ Data\copy Data\CharacterDefine.txt ..\Cli…

如何从 Jira 成功迁移到极狐GitLab,看这个就够了!

内容来源&#xff1a;https://about.gitlab.com/blog 作者&#xff1a;Melissa Ushakov Atlassian 之前表示&#xff0c;到 2024 年 2 月会全面终止对于其服务器端产品的支持。 随着 Jira Server 的生命周期即将结束&#xff0c;众多组织都在考虑将其敏捷项目管理工具从Jira 迁…

Linux shell编程学习笔记32:declare 命令

0 前言 在 Linux shell编程学习笔记16&#xff1a;bash中的关联数组https://blog.csdn.net/Purpleendurer/article/details/134053506?spm1001.2014.3001.5501 中&#xff0c;我们在定义关联数组时使用了declare命令。 其实&#xff0c;declare命令的功能不只是定义定义关…

【蓝桥杯选拔赛真题73】Scratch烟花特效 少儿编程scratch图形化编程 蓝桥杯创意编程选拔赛真题解析

目录 scratch烟花特效 一、题目要求 编程实现 二、案例分析 1、角色分析

C#,数值计算——插值和外推,二维三次样条插值(Spline2D_interp)的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 二维三次样条插值 /// Object for two-dimensional cubic spline interpolation on a matrix.Construct /// with a vector of x1 values, a vector of x2 values, and a ma…

Fisher信息理论与应用

一、概念介绍 Fisher信息量&#xff0c;是一次观测值所能提供的关于未知参数θ的信息量期望值的一种度量。 Fisher信息矩阵&#xff0c;是用利用最大似然函数估计来计算方差矩阵&#xff0c;表示随机变量的一个样本所能提供的关于状态参数在某种意义下的平均信息量。 Fisher…