Java 处理库方法抛出的Null?
我有下面的代码,我试图处理抛出的空指针,但即使它是空的,我仍然会得到空错误 当Java 处理库方法抛出的Null?,java,string,validation,nullpointerexception,null,Java,String,Validation,Nullpointerexception,Null,我有下面的代码,我试图处理抛出的空指针,但即使它是空的,我仍然会得到空错误 当LibraryMethod.getValue为null时,如何最有效地处理null指针并返回空字符串 private static String createValue(NodeList userAttributes) { if(null != LibraryMethod.getValue(LibraryMethod.getNode(userAttributes, USER_NAMES).ge
LibraryMethod.getValue
为null时,如何最有效地处理null指针并返回空字符串
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 user?.address?.street;
try {
result = lib.get(xyz);
} catch (NoSuchKeyException e) {
result = 0;
}
return user?.address?.street;
try {
result = lib.get(xyz);
} catch (NoSuchKeyException e) {
result = 0;
}
与选项3相关,Java有一个概念,您可能想看看。什么是
LibraryMethod
?那是你写的吗?此外,此代码不会抛出null或null指针-它会抛出NullPointerException(大概是这样)。