如果可以使用Java 8:
Collection<Item> items = foos.stream() .map(Foo::getItem) .collect(toList());
否则你确实可以 使用变换方法 。在你的情况下:
Function<Foo, Item> f = new Function<Foo, Item>() { public Item apply(Foo foo) { return foo.getItem(); } }; Collection<Item> items = Collections2.transform(foos, f);