这是我一直想知道的事情。
是否可以传递一个对象,但首先在同一行中对该对象调用void方法?这很难解释,但我会举一个例子:
我正在使用来自第三方API的Vector
对象,它只保存3个坐标,我将其传递给一个组成setLocation(Vector)
的方法;但首先我想在Vector#addY(3f);
完成对该向量的Y值添加3,那么是否可以在同一行上执行此操作?
setLocation(new Vector(0f,4f,0f).addY(3));
我认为这应该解释我的意思。
答案 0 :(得分: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));