我正在编写一些我有时需要但不经常需要的代码,并且想知道为什么它需要这么多行代码。我需要使用从另一个集合的对象中的方法返回的字符串创建一个新集合。我可能会在该类的三种不同方法上执行此操作三次。我想番石榴中可能有一些东西可以帮助我。就像是:
collection = Iterators.collectNotNull( myCollection, new Function...{
public String apply( MyObject input ) {
String value = input.getStringValue();
if ( StringUtils.isEmpty( value )
return null;
return value; } );
我的意思是这对我来说甚至是太多的代码行。但无论哪种方式,我基本上都是在需要的时候写上面的。
所以问题是,谁能用更少的代码更简单地做到这一点?您可以使用现有的主流库,例如 Apache commons 或 Guava。如果您想消除创建匿名内部以获取将返回值的方法的需要,则反射是可以的。以上是我最好的尝试,但我必须编写可重用的“collectNotNull”方法。我宁愿不必。