E.g。 2方法调用:
myMethod(getHtmlFileName());
或
String htmlFileName=getHtmlFileName();
myMethod(htmlFileName);
这是更好的方法,在第一种情况下排除较少的输入?
答案 0 :(得分:3)
如果要在多个位置使用方法的返回值,将其存储在变量中并在代码中使用该变量可能更实用,可读且易于调试,而不是每次都调用该方法:
String htmlFileName = getHtmlFileName();
myMethod(htmlFileName);
....
myMethod(htmlFileName + "...");
答案 1 :(得分:2)
第二种方法可以帮助你调试getHtmlFileName()的返回值,但除此之外,这两种方法在绝对意义上都不比另一种好。我会说,这是一个偏好的问题,也许是背景。在这种特殊情况下,我会选择第一种方法,但如果你要合并多种方法,为了便于阅读,我会选择第二种方法,例如:
String first = firstMethod();
String second = secondMethod(first);
String third = thirdMethod(second);
而不是
thirdMethod(secondMethod(firstMethod()));
编辑:正如其他人所指出的那样,如果您要在多个地方使用该值,那么显然您将使用第二种方法并保留对该值的引用以供以后使用。
答案 2 :(得分:1)
这可能取决于具体情况。 如果你打算在你的代码块中的其他地方使用htmlFileName变量,你可能会将它存储为局部变量(对于一些重度方法调用尤其如此):
String htmlFileName=getHtmlFileName();
myMethod(htmlFileName);
如果是一次性致电
myMethod(getHtmlFileName());
可能更优雅,更容易阅读。
答案 3 :(得分:0)
如果稍后使用getHtmlFileName()返回值,并且返回值是固定的,则需要使用第一个表单,即分配本地变量并重用它,从而避免冗余调用/对象创建。
否则(例如,如果你只调用一次getHtmlFileName方法,你将需要使用更简洁的第一个表单,并避免无用的局部变量赋值,但如果仍然使用第二个表单则没有真正的危害(例如,用于调试)。