在下面的示例中,在设置变量runner的值之前,将变量knockOut设置为runner对象。在为后续变量设置任何值之前,将变量设置为对象的好处是什么?任何帮助深表感谢。

CODE 1和CODE 2有什么区别吗?

代码1

runner = new runner();
knockOut.setrunner(runner);
if(fpmlMap.get(ABCConstants.KNOCK_OUT_EVENT) != null
    && fpmlMap.get(ABCConstants.KNOCK_OUT_EVENT).trim().length() > 0) {

    String  knockOutEvent = fpmlMap.get(ABCConstants.KNOCK_OUT_EVENT);
    runnerTypeEnum = null;
    runner.setrunnerType(runnerTypeEnum.fromValue(knockOutEvent));
}


代码2

runner = new runner();
    if(fpmlMap.get(ABCConstants.KNOCK_OUT_EVENT) != null
    && fpmlMap.get(ABCConstants.KNOCK_OUT_EVENT).trim().length() > 0) {

    String  knockOutEvent = fpmlMap.get(ABCConstants.KNOCK_OUT_EVENT);
    runnerTypeEnum = null;
    runner.setrunnerType(runnerTypeEnum.fromValue(knockOutEvent));
}
knockOut.setrunner(runner);

最佳答案

这样,无论以下knockOut块的结果如何,runner始终具有对if的引用。

编辑

响应您的编辑:两个示例之间没有区别。两种方法均有效,并且产生相同的行为。

(这是假设上面的代码是“正常”的,并且做了合理的程序员期望做的事情。)

在上下文中使用时,您可以选择第一种样式来提高代码的可读性。但是,以我的经验,第二种风格更为常见。

09-26 11:51