今天遇到一个问题,在接收整型参数作为搜索条件时,想要的效果是前端传值则接收,不传值,默认为null
但是前端没传值,后台却默认为0
原来我用long类型接收的,以前是用Long包装类接收,所以没遇到这个问题,基础还不够,特意查了一下两个的区别,记录一下
Long和long的区别
long 是基本类型,不能为null,初始值为0
Long是 long的包装类,可以为null, 初始值为null
long 可以给Long赋值, Long 给 long 赋值时要判断是否null,如果null赋值给long,则会抛空指针异常。
到底是选择Long 还是long 这个看场景了,如果你认为这个属性不能为null,那么就用long,因为它至少会是0,如果这个字段可以为null,那么就应该选择Long。