这是我很久以来一直想知道的事情.
是否可以传递一个对象,但首先在同一行中调用该对象上的void方法?这很难解释,但我会举一个例子:
我正在使用Vector来自第三方API 的对象,它只保存3个坐标,我将它传递给一个组合setLocation(Vector)方法; 但首先我要将3添加到该Vector的Y值,这是由Vector#addY(3f);可以在同一行上执行此操作吗?
setLocation(new Vector(0f,4f,0f).addY(3));
Run Code Online (Sandbox Code Playgroud)
我认为这应该解释我的意思.
如果您可以更改addY()以"返回此",那么您就可以开展业务了.
由于它是第三方API,您可能只需要一个辅助函数:
Vector makeAndSetupVector(float f1, float f2, float f3, int y) {
Vector vect = new Vector(f1, f2, f3);
vect.addY(y);
return vect;
}
Run Code Online (Sandbox Code Playgroud)
现在你可以这样做:
setLocation(makeAndSetupVector(0f, 4f, 0f, 3));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
421 次 |
| 最近记录: |