为什么在 Controller 中使用 Integer 在 Service 中使用 int

int vs Integer

  • int:

    • 是基本数据类型,无法为 null
    • 性能更高,因为它是原生类型,直接存在于内存中。
    • 无法使用 null 值来表示未初始化或缺失的值。
  • Integer:

    • int 的包装类,可以为 null
    • 可以使用更丰富的方法,如 Integer.parseInt()Integer.valueOf() 等。
    • 适用于需要表示未初始化或缺失的值的场景,尤其是在对象中。
  1. 参数接收
  • Controller:在接收 HTTP 请求参数时,使用 Integer 因为它可以处理 null 值。这对于处理可选参数(例如未提供的查询参数)尤其有用。在我们的方法中,通常用 Integer
@GetMapping("/listPage")
public Result listPage(
        @RequestParam(defaultValue = "1") Integer pageNum,
        @RequestParam(defaultValue = "10") Integer pageSize,
        String sourceType, 
        String sortParams, 
        String transactionType, 
        String dateCondition) {

如果客户端没有提供 pageNum 参数,Spring MVC 会使用默认值 1。使用 Integer 可以使代码更加健壮,为可能的 null 值提供处理。

业务逻辑

  • Service:在服务层中,我们更倾向于使用 int,因为业务逻辑中可能已经针对这些参数进行了处理,确保了它们不会为 null。使用 int 也可以带来更高的性能:
@Override
public IPage<Bill> listPage(int pageNum, int pageSize, String sourceType, String sortParams, String transactionType, String dateCondition) {
    // 业务逻辑
}

在这种情况下,我们假设 pageNumpageSize 已经被控制器层使用默认值或进行其他类型的校验,使得进入服务层时这些值不会为 null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值