处理库方法引发的空值?



我有下面的代码,我试图处理抛出的空指针,但即使它是空的,我仍然会收到空错误。

当空指针为空时,如何处理空指针并最有效地返回空字符串LibraryMethod.getValue

private static String createValue(NodeList userAttributes) {
if(null != LibraryMethod.getValue(LibraryMethod.getNode(userAttributes, USER_NAMES).get())){
return LibraryMethod.getValue(LibraryMethod.getNode(userAttributes, USER_NAMES).get());
}
return EMPTY_STRING;
}

有许多模式可以解决此类问题。

  1. 公开get(xyz)方法的库也可以公开has(xyz)方法:

    if (lib.has(xyz)) {
    return lib.get(xyz);
    }
    return 0;
    
  2. 公开get(xyz)的库也可以公开get(xyz, defaultval)

    return lib.get(xyz, 0);
    
  3. 某些编程语言支持可选的链接语法,例如:

    return user?.address?.street;
    
  4. 使用某种异常接口,例如:

    try {
    result = lib.get(xyz);
    } catch (NoSuchKeyException e) {
    result = 0;
    }
    

与选项 #3 相关,Java 有一个可选的概念,您可能想要查看。

相关内容

  • 没有找到相关文章

最新更新