2014-01-19 46 views
0

這是我一直想知道很長一段時間的東西。java - 調用void方法,然後在一行上傳遞對象

是否有可能傳遞一個對象,但首先調用同一行中該對象的void方法?這是很難解釋,但我會舉一個例子:

我使用的是來自第三方API的Vector對象,它只保存3個座標,我將它傳遞給組成setLocation(Vector)方法;但首先我想添加3到那個矢量的Y值是由Vector#addY(3f);完成那麼有可能在同一行上做到這一點?

setLocation(new Vector(0f,4f,0f).addY(3)); 

我認爲這應該解釋我的意思。

+7

沒有,除非'addY'方法返回一個新的'矢量'對象,這不是你的情況 – BackSlash

+0

System.out.println(new ArrayList()。add(「5」));打印真實,因爲添加返回布爾值..所以,只有當整個方法鏈返回你的對象,否則,你可以調用一個方法,這是沒有意義的。 – TheLostMind

+5

一個單獨的問題是你爲什麼要?把幾個動作放到一行上是降低代碼清晰度的最好方法 –

回答

5

如果您可以將addY()更改爲「返回此」,那麼您就開始營業了。

由於它是一個第三方API也許你只需要一個輔助功能:

Vector makeAndSetupVector(float f1, float f2, float f3, int y) { 
    Vector vect = new Vector(f1, f2, f3); 
    vect.addY(y); 

    return vect; 
} 

現在你可以這樣做:

setLocation(makeAndSetupVector(0f, 4f, 0f, 3)); 
相關問題