是否有一个简短的手(s!= null&&!s.isEmpty())

时间:2015-04-03 08:35:45

标签: java

有许多!= null!= null && !s.isEmpty()

像这样:

if(sidebar.getModel() != null && !sidebar.getModel().isEmpty()) { ... }

在我们的代码中。看起来不太好的太多了。这个空检查是否有一个简短的手。哪个Java库为这些速记函数提供了广泛的支持,而不需要那么多依赖于其他java工件?

if(notNull(s))if(notEmpty(s))类似,它检查非空并且不是空的。像这样的东西。

3 个答案:

答案 0 :(得分:1)

对于String课程,StringUtils.isEmpty(String value)中有apache-commons-lang3。对于其他类型,您可以创建自己的静态方法,并通过static import使用它。

答案 1 :(得分:1)

Apache commons-lang

检查String是否为空(""),不是null而不是空白。

StringUtils.isNotBlank(null)      = false
StringUtils.isNotBlank("")        = false
StringUtils.isNotBlank(" ")       = false
StringUtils.isNotBlank("bob")     = true
StringUtils.isNotBlank("  bob  ") = true

参数: str - 要检查的String,可以为null

返回: 如果String不为空且不为null且不是空格

,则返回true

答案 2 :(得分:0)

Java 1.7 ,您可以使用实用工具类Objects

  

检查指定的对象引用是否为null。此方法主要用于在方法和构造函数中进行参数验证,如下所示:

 public Foo(Bar bar) {
     this.bar = Objects.requireNonNull(bar);
 }

有用的链接

<强>更新

为了避免NullPointerException Java 1.8 有一些特殊的课程Optional

使用此类将如下所示:

    String contents = new String(Files.readAllBytes(Paths.get(Test.ALICE_PATH)), StandardCharsets.UTF_8);
    List<String> wordList = Arrays.asList(contents.split("[\\P{L}]+"));

    Optional<String> optionalValue = wordList.stream().filter(s -> s.contains("red")).findFirst();
    optionalValue.ifPresent(s -> System.out.println(s + " contains red"));

    Set<String> results = new HashSet<>();
    optionalValue.ifPresent(results::add);
    Optional<Boolean> added = optionalValue.map(results::add);

    System.out.println(added);
    //
    Optional<String> optionalString = Optional.empty();
    String result = optionalString.orElse("N/A");
    System.out.println("result: " + result);

    result = optionalString.orElseGet(() -> System.getProperty("user.dir"));
    System.out.println("result: " + result);