2014-01-19 33 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)); 
相关问题