StringUtils.defaultIfEmpty()方法

本文介绍了一个实用的方法来处理空字符串或null值的情况,通过使用 StringUtils.defaultIfEmpty 方法,可以为 null 或空字符串指定一个默认值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



public static String defaultIfEmpty(String str,
                                    String defaultStr)

如果str为空,则返回defaultStr。否则返回str;

附官方解释:

defaultIfEmpty

public static String defaultIfEmpty(String str,                                      String defaultStr)
Returns either the passed in String, or if the String is empty or 
null, the value of defaultStr.
 StringUtils.defaultIfEmpty(null, "NULL")  = "NULL"   StringUtils.defaultIfEmpty("", "NULL")    = "NULL"   StringUtils.defaultIfEmpty("bat", "NULL") = "bat"   StringUtils.defaultIfEmpty("", null)      = null   

Parameters:

str- the String to check, may be null

defaultStr- the default String to return if the input is empty ("") or null, may be null
Returns:
the passed in String, or the default
private Mono<Boolean> checkSingleUrlAuth(Map<String, Object> authURLInfo, ServerHttpRequest request, String uri) { String authURL = String.valueOf(authURLInfo.get("url")); String keyCol = String.valueOf(authURLInfo.getOrDefault("keyCol", "")); String valueCol = String.valueOf(authURLInfo.getOrDefault("valueCol", "")); boolean basicMatch = authURL.equals(uri) || (authURL.contains("{id}") && isUrlMatch(authURL, uri)); if (basicMatch && StringUtils.isNotBlank(keyCol) && StringUtils.isNotBlank(valueCol)) { return getRequestParams(request) .map(params -> validateParams(params, keyCol, valueCol)) .defaultIfEmpty(false) .onErrorResume(error -> { log.error("Error getting request params error {}, authUrl {}", error,authURL); return Mono.just(false); }); } else if (basicMatch && StringUtils.isBlank(keyCol) && StringUtils.isBlank(valueCol)) { return Mono.just(true); } return Mono.just(false); }public Mono<Map<String, Object>> getRequestParams(ServerHttpRequest request) { return parseJsonFromRequestBody(request) .flatMap(paramMap -> { if (paramMap == null || paramMap.isEmpty()) { MultiValueMap<String, String> queryParams = request.getQueryParams(); Map<String, Object> newParamMap = new HashMap<>(queryParams); return extractFormData(request) .map(formData -> { newParamMap.putAll(formData); return newParamMap; }); }return Mono.just(paramMap);}); }同时发布两个相同的请求时报错Error getting request params error java.lang.IllegalStateException: Rejecting additional inbound receiver. State=[terminated=false, cancelled=false, pending=0, error=false],
03-22
private Mono<Boolean> checkSingleUrlAuth(Map<String, Object> authURLInfo, ServerHttpRequest request, String uri) { String authURL = String.valueOf(authURLInfo.get("url")); String keyCol = String.valueOf(authURLInfo.getOrDefault("keyCol", "")); String valueCol = String.valueOf(authURLInfo.getOrDefault("valueCol", "")); boolean basicMatch = authURL.equals(uri) || (authURL.contains("{id}") && isUrlMatch(authURL, uri)); if (basicMatch && StringUtils.isNotBlank(keyCol) && StringUtils.isNotBlank(valueCol)) { return getRequestParams(request) .map(params -> validateParams(params, keyCol, valueCol)) .defaultIfEmpty(false) .onErrorResume(error -> { log.error("Error getting request params error {}, authUrl {}", error,authURL); return Mono.just(false); }); } else if (basicMatch && StringUtils.isBlank(keyCol) && StringUtils.isBlank(valueCol)) { return Mono.just(true); } return Mono.just(false); }public Mono<Map<String, Object>> getRequestParams(ServerHttpRequest request) { return parseJsonFromRequestBody(request) .flatMap(paramMap -> { if (paramMap == null || paramMap.isEmpty()) { MultiValueMap<String, String> queryParams = request.getQueryParams(); Map<String, Object> newParamMap = new HashMap<>(queryParams); return extractFormData(request) .map(formData -> { newParamMap.putAll(formData); return newParamMap; }); }return Mono.just(paramMap);}); }同时发布两个相同的请求时报错Error getting request params error java.lang.IllegalStateException: Rejecting additional inbound receiver. State=[terminated=false, cancelled=false, pending=0, error=false],优化代码
03-22
为什么内存溢出哪里有问题? private String getPrintersData(List<ToolPersonDto> dmList, Map<String, String> queryMap) { try { ObjectMapper mapper = new ObjectMapper(); ObjectNode node = mapper.createObjectNode(); String empNo = queryMap.get("empNo"); List<AccountPrintDm> accList = coverAcctRecord(dmList, empNo); AccountPrintDm oneDm = accList.get(0); node.put("empNo", empNo); node.put("empName", oneDm.getEmpName()); node.put("machineNo", oneDm.getMachineNo()); node.put("printDate", queryMap.get("printDate")); node.put("printEmp", queryMap.get("printEmp")); Map<String, String> map = hrEmpRemote.getEmpInfo(oneDm.getEmpNo()); String deptName = (StringUtils.isNotBlank(map.get("factoryName")) ? map.get("factoryName") : "") + (StringUtils.isNotBlank(map.get("groupName")) ? "/" + map.get("groupName") : ""); node.put("deptName", deptName); node.put("shareMan", oneDm.getShareMan()); node.putPOJO("data", accList); return node.toString(); } catch (Exception e) { throw new EJBException(e); } } private List<AccountPrintDm> coverAcctRecord(List<ToolPersonDto> dmList, String empNo) { List<AccountPrintDm> accList = new ArrayList<>(); Integer i = 0; for (ToolPersonDto dto : dmList) { AccountPrintDm accDm = new AccountPrintDm(); i++; String empName = ""; if (empNo.equals(dto.getEmpNo())) { empName = dto.getEmpName(); } //在主帐人匹配不上名字就从共有人获取 if ("".equals(empName)) { empName =dto.getShareOwnerName(); accDm.setEmpName(empName); } if (StringUtils.isNotBlank(dto.getShareOwnerNo()) && dto.getShareOwnerNo().equals(empNo)) { accDm.setShareMan(dto.getEmpNo() + "[" + dto.getEmpName() + "]"); } else { accDm.setShareMan(StringUtils.isNotBlank(dto.getShareOwnerNo()) ? dto.getShareOwnerNo() + "[" + dto.getShareOwnerName() + "]" : ""); } accDm.setNo(i.toString()); // accDm.setShareMan(StringUtils.isNotBlank(dto.getShareOwnerNo()) ? dto.getShareOwnerNo()+"["+dto.getShareOwnerName()+"]" : ""); accDm.setSerialNo(dto.getSerialNo()); accDm.setEmpNo(dto.getEmpNo()); // accDm.setEmpName(dto.getEmpName()); accDm.setMachineNo(dto.getMachineNo()); accDm.setItemCode(dto.getItemCode()); accDm.setItemDesc(dto.getItemDesc()); accDm.setQty(String.valueOf(dto.getQty())); accDm.setSource(dto.getSource()); accList.add(accDm); } return accList; }
07-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值