Java 将局部变量重构为我将返回的对象
我有一个结果对象,如:Java 将局部变量重构为我将返回的对象,java,Java,我有一个结果对象,如: public class ActionResult { int ... String ... Boolean .. } 我的方法是: public ActionResult getAbc(..) { String string1; Boolean bool1; int int1; string1 = someDao.get(p1); if(string1 != null) { bool1 = someD
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,现在怎么办?
代码看起来很凌乱,很难读懂,你不这样认为吗?你必须决定当你的库返回
null
时会发生什么,如果它是字符串,一种模式是将它与true进行比较
"true".equalsCaseIgnore(valueWhichCouldBeNull)
与equals一样,如果值为null,则返回false。你必须决定这是否正确。应该为true还是引发异常(应该是哪个异常?两种处理null的方法:
您能告诉我如何解析字符串吗,其中1为true,0和null为null?