【发布时间】:2012-12-09 07:28:02
【问题描述】:
我正在编写一些有时需要但不经常需要的代码,我想知道为什么它需要这么多行代码。我需要使用从另一个集合的对象中的方法返回的字符串创建一个新集合。我可能会在该类的三种不同方法上执行此操作三次。我想番石榴中可能有一些东西可以帮助我。比如:
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”方法。我宁愿不必这样做。
【问题讨论】:
-
我不明白你想要完成什么。您需要将空字符串转换为 null 吗?
-
你为什么关心它有多少行代码?如果这是您反复做的事情,请创建一个可以重复使用的方法。
-
没有理由。我只是注意到我在这方面做了很多变化,而且在 Java 中它比在其他语言中更麻烦。想知道是否有比 Ruby、Python 或 Smalltalk 更简单但特定于 Java 的习语。
-
当然是在 Jahroy 方法中。
标签: java collections