我有一个结果对象:
public class ActionResult {
int ...
String ...
Boolean ..
}
我的方法:
public ActionResult getAbc(..) {
String string1;
Boolean bool1;
int int1;
string1 = someDao.get(p1);
if(string1 != null) {
bool1 = someDao.getB(string1);
}
}
现在我想用我的ActionResult
对象替换它,但发现它看起来很乱,我必须转换值,但是值可能为null,我的set调用将失败然后更正?
示例:
if(result.getString1() != null) {
result.setBool1( someDao.getB1(result.getString1()) );
}
问题是,调用getB1
的结果实际上返回一个字符串(第三方库我不能改变它),然后我必须转换为布尔值。
result.setBool1( Boolean.parseBoolean( someDao.getB1(result.getString1()) ) );
此外,对getB1
的调用可能会返回null,现在是什么?
看起来代码看起来非常混乱,难以阅读你不觉得吗?
答案 0 :(得分:1)
两种处理null的方法:
答案 1 :(得分:0)
你必须决定当你的库返回时会发生什么null
如果一个字符串是一个字符串就是将它与true进行比较。
"true".equalsCaseIgnore(valueWhichCouldBeNull)
与equals类似,如果值为null,则返回false。你必须决定这是否正确。它应该是真的还是抛出异常(它应该是什么异常?)