提问人:java12399900 提问时间:12/4/2019 更新时间:12/15/2019 访问量:73
处理库方法抛出的 Null?
Handling Null being thrown by Library Method?
问:
我有下面的代码,我试图处理抛出的空指针,但即使它是空的,我仍然得到空错误。
当为 null 时,如何最有效地处理 null 指针并返回空字符串?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赞
jarmod
12/4/2019
#1
解决此类问题有多种模式。
公开该方法的库还可以公开一个方法:
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 有一个 Optional 的概念,您可能需要查看它。
评论
LibraryMethod