更新:
有关使用lambda表达式的Java8解决方案,请参见aaiezza的答案。
Java 8之前的原始答案:
使用Guava可以实现效果,
Function实现比您现有的更加冗长:
List<Car> cars = //...Function<Car, String> carsTonames = new Function<Car, String>() { @Override public String apply(Car car) { return car.getName(); }}List<String> names = Lists.transform(cars, carsToNames);
(请记住,
Lists.transform返回的视图将延迟应用该函数-
如果要立即复制,则需要将返回的列表复制到新列表中。)
因此,这并不能帮助您缩短代码,但是,这是实现Java所需效果的详细程度示例。
编辑:
您可能会看看lambdaj,一个似乎可以满足您所寻找内容的库。我没有亲自尝试过,但是首页显示了以下示例:
List<Person> personInFamily = asList(new Person("Domenico"), new Person("Mario"), new Person("Irma"));forEach(personInFamily).setLastName("Fusco");
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)