字符串参数默认是null还是空字符串?

字符串参数默认值时null还是空字符串?

我们最怕启动项目的时候,出现空指针异常,
一般空指针异常, 是因为我们需要获取的数值变成了null造成的, 如下:
	(1) request 的请求传参数时, 字段没有写默认值, 则默认为null
	(2) 新增数据时, 插入了一条字段为null ,但是数据库字段要求不为null的值

postman工具中-request参数:

是否传值postman调用时否打钩默认值
参数不传postman调用时不打钩默认为null
参数传值,值为空postman调用时打钩默认为空字符串

在代码中,非必填request请求参数:

参数默认值
String类型参数非必填, 没有给默认值null
String类型参数非必填, 给默认值 defaultValue =""空字符串
String类型参数非必填, 给默认值 defaultValue =“其他字符串”其他字符串

eg:在获取列表时,我们通常会根据关键词keyword搜索

 /**
 * 获取渠道列表
 * @param request
 * @param page
 * @param size
 * @param keyword
 * @return
 */
@AuthSession
@RequestMapping(value = "/getChannelList", method = {
        RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody

public String getChannelList(HttpServletRequest request, @RequestParam("page") int page,
                             @RequestParam("size") int size,
                             @RequestParam(value = "keyword", required = false) String keyword) {

	 String response = cameraService.getChannelList(page, size, keyword).toJSONString();
    logger.info("[获取渠道列表 response]: {}", response);
    return response;
}

解:
这里的请求参数keyword值, 不是非必填值, 并且没有给出默认值, 则这里keyword 默认值是null.
如果添加默认值, 默认值 = "", 则默认值是空字符串,如下:
 @RequestParam(value = "keyword", required = false, defaultValue="") String keyword
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值