如何确定字符串列表是否包含 null 或空元素

2022-09-01 16:57:52

在Java中,我有以下方法:

public String normalizeList(List<String> keys) {
    // ...
}

我想检查一下:keys

  • 不是它本身;和null
  • 不为空 ();和size() == 0
  • 没有任何元素是 ;和Stringnull
  • 没有任何空元素 (“”)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...
}

我相信最后2个检查和不正确,可能会引发运行时异常。我知道我可以循环访问if语句中的列表,并检查那里的空值/空值,但是如果它存在,我正在寻找一个更优雅的解决方案。keys.contains(null)keys.contains("")


答案 1
 keys.contains(null) || keys.contains("")

如果列表具有空(或)空字符串,则不会引发任何运行时异常和结果。true


答案 2

这对我来说看起来很好,你唯一能从中得到的例外就是如果它本身是。keys.contains(null)keys.contains("")keysnull

但是,由于您首先检查了这一点,因此您知道此时不是 ,因此不会发生运行时异常。keysnull