isnotBlank和!= null&&"".equals的区别
时间: 2023-07-06 10:03:44 浏览: 129
`isNotBlank`是Apache Commons Lang库中的字符串工具类方法,用于判断一个字符串是否不为空或空格字符,返回值为`true`表示不为空或空格字符,返回值为`false`表示为空或空格字符。例如:
```
StringUtils.isNotBlank(" "); // false
StringUtils.isNotBlank("hello"); // true
StringUtils.isNotBlank(null); // false
```
而`!= null && "".equals`是判断一个字符串不为空并且不为`null`,并且要与空字符串相等时才返回`true`。例如:
```
String str = "hello";
if (str != null && !"".equals(str)) {
// do something
}
```
可以看到,两者的作用略有不同。`isNotBlank`更加严谨,可以同时判断空字符串和空格字符,而`!= null && "".equals`只能判断空字符串。
相关问题
public List<T> findAllByPage(Class<T> tClass, Date startTime, Date endTime, int page, int size, Map<String, String> searchMap, String orderByName, String sortStatus) { Criteria where = new Criteria(); if (startTime != null && endTime != null) { where.andOperator(Criteria.where("clickTime").gte(startTime), Criteria.where("clickTime").lte(endTime)); } for (Map.Entry<String, String> entry : searchMap.entrySet()) { where.and(entry.getKey()).is(entry.getValue()); } if (StringUtils.isNotBlank(orderByName) && StringUtils.isNotBlank(sortStatus)){ } Query query = new Query(where); query.skip((page - 1) * size).limit(size); return mongoTemplate.find(query, tClass); } 上面的代码中 要用orderByName 和 sortStatus字段加上排序
的条件,可以使用以下代码:
```
if (StringUtils.isNotBlank(orderByName) && StringUtils.isNotBlank(sortStatus)){
Sort sort = Sort.by(sortStatus.equals("asc") ? Sort.Order.asc(orderByName) : Sort.Order.desc(orderByName));
query.with(sort);
}
```
这里使用了Spring Data MongoDB的Sort类来构造排序条件,通过判断sortStatus的值来确定是升序还是降序。最后将排序条件加入到查询中即可。
//新版接口 if (StringUtils.isBlank(iv)) { String url = String.format(AppletUtils.LOGIN_GET_PHONE, miniMessageService.getDoctorMiniAccessToken()); JSONObject request = new JSONObject(); request.put("code", phoneCode); ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class); // 解析相应内容(转换成json对象) String sr = response.getBody(); JSONObject json = JSONObject.parseObject(sr); log.info("新版接口获取手机号返回" + json.toString()); if (json.get("errcode") != null && !"0".equals(json.getString("errcode"))) { throw new Exception(json.getString("errmsg")); } String phoneInfo = json.getString("phone_info"); if (StringUtils.isNotBlank(phoneInfo)) { JSONObject phoneInfoTemp = JSONObject.parseObject(phoneInfo); return phoneInfoTemp.getString("phoneNumber"); } } else { //旧版接口 log.info("旧版接口解密开始:sessionKey:"+sessionKey); String result = AesCommonUtils.decryptWX(phoneCode, sessionKey, iv, "UTF-8"); log.info("旧版接口解密:"+result); if (null != result && result.length() > 0) { JSONObject json = JSONObject.parseObject(result); if (json.containsKey("phoneNumber")) { return json.getString("phoneNumber"); } } }
这是一段Java代码,大概的逻辑如下:
1. 检查参数iv是否为空,如果为空,则使用新版接口获取手机号码,否则使用旧版接口。
2. 如果使用新版接口,则构造请求URL,将手机号码验证码等信息封装成json格式请求体,使用RestTemplate发送POST请求,并接收响应体。
3. 解析响应体,如果errcode不为0,则抛出异常。
4. 从响应体中获取phone_info字段,解析出其中的phoneNumber字段并返回。
5. 如果使用旧版接口,则调用AesCommonUtils.decryptWX方法对phoneCode进行解密,得到解密后的字符串。
6. 解析得到的字符串,如果包含phoneNumber字段,则返回该字段的值。
需要注意的是,这段代码中使用了一些第三方库和工具类,例如StringUtils、JSONObject、RestTemplate等,这些工具类需要提前导入并配置好。
阅读全文