例如2個方法調用:鏈式方法調用或引入中間變量更好嗎?
myMethod(getHtmlFileName());
或
String htmlFileName=getHtmlFileName();
myMethod(htmlFileName);
這是更好的方式,在第一種情況下排除少打字的?
例如2個方法調用:鏈式方法調用或引入中間變量更好嗎?
myMethod(getHtmlFileName());
或
String htmlFileName=getHtmlFileName();
myMethod(htmlFileName);
這是更好的方式,在第一種情況下排除少打字的?
第二種方法將幫助您調試getHtmlFileName()的返回值,但除此之外,從絕對意義上講,這兩種方法都不如其他方法更好。這是一個偏好問題,也許是上下文,我會說。在這種特殊情況下我會去的第一種方法,但如果你是結合多種方法,我會去第二,爲便於閱讀的緣故,如:
String first = firstMethod();
String second = secondMethod(first);
String third = thirdMethod(second);
而不是
thirdMethod(secondMethod(firstMethod()));
編輯:正如其他人指出的那樣,如果你打算在不止一個地方使用這個值,那麼顯然你會使用第二種方法並保留一個參考值以備後用。
如果要在多個位置使用方法的返回值,將其存儲在變量中並在代碼中使用該變量可能更實用,更易於閱讀且易於調試,而不是每次調用該方法:
String htmlFileName = getHtmlFileName();
myMethod(htmlFileName);
....
myMethod(htmlFileName + "...");
添加:另外如果getHtmlFileName()是一種資源密集型方法調用,您可以將結果保存在變量中。 – quaylar 2012-03-02 09:51:23
它可能取決於上下文。 如果你要在你的代碼塊的其他地方使用htmlFileName變量,你大概是什麼存儲它的局部變量一樣(尤其如此,一些重型方法調用):
String htmlFileName=getHtmlFileName();
myMethod(htmlFileName);
如果是一次性調用
myMethod(getHtmlFileName());
可能更優雅,易於閱讀。
我想我們在同一時間處理它... – Slav 2012-03-02 08:05:55
如果稍後使用getHtmlFileName()返回的值,並且返回的值是固定的,則需要使用第一種形式,即分配局部變量並重用它,從而避免多餘的調用/對象創建。 (例如,如果你只調用getHtmlFileName方法一次,你會希望使用第一種更簡潔的形式,它避免了無用的局部變量賦值,但是如果你仍然使用第二種形式(例如用於調試)
爲什麼downvote? – claesv 2012-03-02 08:06:33
-1你完全是worng,問題是關於哪個是最好的方法直接將ValueObject的屬性作爲參數傳遞給方法或將屬性的值賦給變量,然後把它作爲參數傳遞給方法也請在你的評論下面檢查我的評論正確判斷答案並降低它 – developer 2012-03-02 08:08:38
@Damodar這是一個非常令人困惑的句子,我不知道如何閱讀,你知道這是Java,那個對象是pa以參考爲準,對吧? – claesv 2012-03-02 08:10:59