我有下面的代码,我试图处理抛出的空指针,但即使它是空的,我仍然会收到空错误。
当空指针为空时,如何处理空指针并最有效地返回空字符串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;
}
有许多模式可以解决此类问题。
-
公开
get(xyz)
方法的库也可以公开has(xyz)
方法:if (lib.has(xyz)) { return lib.get(xyz); } return 0;
-
公开
get(xyz)
的库也可以公开get(xyz, defaultval)
:return lib.get(xyz, 0);
-
某些编程语言支持可选的链接语法,例如:
return user?.address?.street;
-
使用某种异常接口,例如:
try { result = lib.get(xyz); } catch (NoSuchKeyException e) { result = 0; }
与选项 #3 相关,Java 有一个可选的概念,您可能想要查看。