IAm*_*aja 17 java string collections
在Java中,我有以下方法:
public String normalizeList(List<String> keys) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
我想检查一下keys:
null自己; 和size() == 0); 和String元素null; 和String空元素("")这是一个实用的方法,将进入"公共"式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...
}
Run Code Online (Sandbox Code Playgroud)
我相信最后2次检查keys.contains(null)并且keys.contains("")不正确,可能会抛出运行时异常.我知道我可以循环遍历if语句中的列表,并检查那里的空值/空值,但我正在寻找一个更优雅的解决方案,如果它存在.
kos*_*osa 34
keys.contains(null) || keys.contains("")
Run Code Online (Sandbox Code Playgroud)
true如果列表具有null(或)空String,则不会抛出任何运行时异常和结果.
使用 java 8 你可以这样做:
public String normalizeList(List<String> keys) {
boolean bad = keys.stream().anyMatch(s -> (s == null || s.equals("")));
if(bad) {
//... do whatever you want to do
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说这看起来很好,你可以得到的唯一例外keys.contains(null),keys.contains("")如果keys它本身就是null.
但是,由于您首先检查了这一点,因此您知道此时keys不会null,因此不会发生运行时异常.