私は、頻繁ではなく時々必要になるコードを書いていましたが、なぜこれほど多くのコード行が必要なのか疑問に思っていました。別のコレクションのオブジェクトのメソッドから返された文字列を使用して、新しいコレクションを作成する必要がありました。そのクラスの 3 つの異なるメソッドでこれを 3 回行う場合があります。グアバには私を助ける何かがあるかもしれないと思いました。何かのようなもの:
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」メソッドを作成する必要がありました。私はする必要がない方がいいです。