说我有方法Foo createFoo()
。我需要在boolean Foo.bar()
返回的对象上调用方法Foo createFoo()
,然后将对象传递给方法void baz(Foo someFoo)
。有没有办法在一行中做到这一点?
如果我不需要致电boolean Foo.bar()
,我本可以做到
baz(createFoo());
但是我无法做到这一点,因为它没有调用Foo.bar()。
我也不能这样做:
baz(createFoo().bar());
因为那会将从Foo.bar()
返回的布尔值传递给baz,而不是实际的Foo对象。
答案 0 :(得分:5)
不,如果您需要bar
返回boolean
,则必须使用
Foo foo = createFoo();
foo.bar();
baz(foo);
如果你发现自己一遍又一遍地重复这种模式,你当然也可以创建一种方便的方法
void barAndBaz(Foo foo) {
foo.bar();
baz(foo);
}
并做
barAndBaz(createFoo());