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

数据传输对象(DTO)中什么时候用int,什么时候用Integer

@Data
public class DishPageQueryDTO implements Serializable {private int page;private int pageSize;private String name;//分类idprivate Integer categoryId;//状态 0表示禁用 1表示启用private Integer status;}

代码中为什么有的属性用int,有的属性用Integer

这是一个非常常见、也非常重要的 Java 基础问题,核心原因只有一句话:
int 是基本类型,Integer 是包装类型;当字段需要“null 语义”时必须用包装类型。

下面把你在 DTO 里看到的两种写法逐条拆开说明:

字段类型为什么这样选
pageint分页查询里“第几页”属于强制必须的参数,业务上不允许为空,用 int 可以强制调用方必传(不传框架也会给默认值 0),而且省一点内存。
pageSizeint同上,“每页条数”也是强制必须,通常>0,用 int 同样可以避免 null。
nameString字符串没有基本类型,只能写 String; nullable 查询条件,传 null 代表“不按名字过滤”。
categoryIdInteger查询条件里“分类 id”是可选的,传 null 代表“不限分类”。如果写成 int,null 会被强转成 0,就把“不限”误伤成“只查分类 0”了。
statusInteger与 categoryId 同理,0 代表禁用,1 代表启用,null 代表“不限状态”。用 int 会把 null 变 0,查询就永远只能查出禁用的数据。

一句话总结
“只要这个字段在业务上需要表达‘没传’、‘不限’、‘未知’这三种含义,就必须用包装类型(Integer/String/Double…);否则可以用基本类型(int/double/char…)。”

额外注意点

  1. 数据库里字段允许 NULL,对应的 Java 实体类也必须用包装类型,否则 ORM 在映射时会抛 “Null value was assigned to a property of primitive type” 异常。
  2. 布尔标志推荐用 Boolean 而不是 boolean,原因一样:需要区分“未设置”与“true/false”。
  3. 在 DTO/VO 里尽量保持包装类型,可以少踩很多空指针和类型转换的坑;基本类型只在你绝对确定它不会为 null 的场景再用。
http://www.dtcms.com/a/443478.html

相关文章:

  • 广州注册公司核名在哪个网站网站建费用
  • 可以上传自己做的视频的网站网站维护的注意事项
  • 做暧嗳xo小视频网站深度开发
  • 电商类网站开发网上搞钱的野路子
  • 网站打不开服务器错误建设银行官网登录入口
  • HandlerThread源码阅读
  • 口碑好的番禺网站建设腾讯云自助建站
  • 54所面经准备
  • 宣讲家网站美丽乡村建设怎么创网站赚钱吗
  • 如何建立小程序网站网站开发技术项目代码搜索
  • C语言编译执行过程
  • 网站长尾词排名做不上去响应式布局代码怎么写
  • 【Linux】进程信号(1)
  • 男女做那个的的视频网站常见的网页设计工具
  • 做网站时管理员权限的页面wordpress标签前缀
  • 建网站找哪个平台好呢专业简历制作网站有哪些
  • 3.2.2 LangChain.js + LangGraph.js 实战
  • ARL资产侦察灯塔系统一键部署教程(2025最新)
  • 山东省环保厅官方网站建设项目网站建设好找工作吗
  • ui界面设计说明范文网站排名优化价格
  • SSM大学请假管理系统e9kl1(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • java基础-11 : 数据结构与算法
  • 洛谷P1036 [NOIP 2002 普及组] 选数 题解
  • 坂田做网站的公司业务员销售管理软件
  • 网站服务器基本配置微信管理系统在哪
  • C语言题目与练习解析:配套《数据在内存中的存储》
  • Effective STL 第1条:慎重选择容器类型
  • 网站做多长时间才有流量双线主机可以做彩票网站吗
  • 外贸型网站建设公司福州最好的网站建设公司
  • 规划网站建设的总体目标张家港网站设计制作早晨设计