【发布时间】:2021-12-09 09:17:30
【问题描述】:
我编写了一个不允许重复字符的应用程序。我的代码工作正常,但是声纳说“而不是 containsKey 使用 computeIfAbsent”。如何克服声纳警告?
我的代码如下:
if (promoRequest.getCharset() != null) {
Map<Character, Integer> map = new HashMap<>();
for (char charsetCharacter : promoRequest.getCharset().toCharArray()) {
if (map.containsKey(charsetCharacter)) {
throw new BadRequestException(Constants.INCLUDE_MUST_NOT_BE_DUPLICATED);
}
map.put(charsetCharacter, 1);
}
}
我已经解决了问题
for (char charsetCharacter : promoRequest.getCharset().toCharArray()) {
if (!map.containsKey(charsetCharacter)) {
map.put(charsetCharacter, 1);
} else {
throw new BadRequestException(Constants.CHARSET_CHARACTER_INCLUDE_MUST_NOT_BE_DUPLICATED);
}
【问题讨论】:
-
例外是强制性的还是您不需要保留?
-
你好,谢谢你的回答,我的异常是 badrequest 是强制性的,所以我必须把它放在我的代码上。
-
我怎样才能根据声纳警告更改我的代码?
-
我还需要保持空控制
标签: java spring spring-boot java-8 sonarqube