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的方法:

  • 根据您的问题域,将null视为true或false
  • 将null保留为null,这是不确定的

  • 您能告诉我如何解析字符串吗,其中1为true,0和null为null?