在Java中,我有以下方法:
public String normalizeList(List<String> keys) {
// ...
}
我要检查keys
:
- 不是
null
本身;以及 - 不为空(
size() == 0
);以及 - 没有任何
null
元素;以及 - 没有任何空的
String
元素(“”)
这是一个实用方法,将放在一个“commons”样式的JAR中(类将类似于DataUtils
)。下面是我所拥有的,但我认为它是不正确的:
public String normalize(List<String> keys) {
if(keys == null || keys.size() == 0 || keys.contains(null) || keys.contains(""))
throw new IllegalArgumentException("Bad!");
// Rest of method...
}
我认为keys.contains(null)
和keys.contains("")
的最后两个检查是不正确的,可能会抛出运行时异常。我知道我可以在if
语句中循环遍历列表,并检查其中的空值/空值,但我正在寻找一个更优雅的解决方案(如果存在)。
9条答案
按热度按时间ne5o7dgx1#
我不确定,但是ApacheCommons库中是否有任何帮助类可以做到这一点?例如,当您有一个字符串的isEmpty,而在ApacheCommons库中有isNullOrEmpty时
iugsix8n2#
一次检查清单
6yjfywim3#
你也可以使用ApacheStringUtils检查字符串是否为空,这将检查null、Emptystring,并修剪你的值。
在此查看StringUtils文档:
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html
b1payxdu4#
Aniket作为评论对此给出了一个真的很好的答案:
因此,使用Aniket的评论来调整您的原始解决方案:
vh0rcniy5#
nfg76nw06#
如果列表中有null(或)空String,则不抛出任何运行时异常和结果
true
。8cdiaqws7#
这在我看来很好,从
keys.contains(null)
和keys.contains("")
中得到的唯一例外是keys
本身是null
。但是,由于您首先检查了它,因此您知道此时
keys
不是null
,因此不会发生运行时异常。u5rb5r598#
使用java 8,您可以:
6ie5vjzr9#
如果您可以使用org.springframework.util.CollectionUtils,则可以应用此命令
它不会将不可变集合作为List.of()抛出NullPointerException。