int vs Integer
-
int
:- 是基本数据类型,无法为
null
。 - 性能更高,因为它是原生类型,直接存在于内存中。
- 无法使用
null
值来表示未初始化或缺失的值。
- 是基本数据类型,无法为
-
Integer
:- 是
int
的包装类,可以为null
。 - 可以使用更丰富的方法,如
Integer.parseInt()
或Integer.valueOf()
等。 - 适用于需要表示未初始化或缺失的值的场景,尤其是在对象中。
- 是
- 参数接收:
- 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) {
// 业务逻辑
}
在这种情况下,我们假设 pageNum
和 pageSize
已经被控制器层使用默认值或进行其他类型的校验,使得进入服务层时这些值不会为 null
。