2014-01-19 3 views
0

Вот что я давно хотел узнать.java - вызовите метод void, затем передайте объект по одной строке

Возможно ли передать объект, но сначала вызвать метод void для этого объекта в той же строке? Трудно объяснить, но я приведу пример:

Я использую объект Vector от стороннего API, он просто содержит 3 координаты, и я передаю его в метод setLocation(Vector); но сначала я хочу добавить 3 к значению Y этого вектора, которое выполняется Vector#addY(3f);. Так можно ли сделать это в той же строке?

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

Я думаю, что это должно объяснить, что я имею в виду.

+7

Нет, если 'метод addY' возвращает новый' Vector 'object, который не является вашим аргументом – BackSlash

+0

System.out.println (новый ArrayList(). add (" 5 ")); prints true, потому что add возвращает логическое значение. Таким образом, вы можете вызывать метод только тогда, когда вся цепочка методов возвращает ваш объект в противном случае, это не имеет смысла. – 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)); 
Смежные вопросы