Guavaのコレクションutilsを使用してコードを記述し、コード断片を見てプレーンJava 7でコードを書き直したいと思うことがあります。なぜなら、IMHOはより簡潔で容易になるからです普通の古いJavaを使って読む。バニラのJava 7で、それは次のようになり、一方、Guava Collection UtilsとプレーンJava 7
List<A> myList = ...
Map<A, B> mappings = Maps.uniqueIndex(myList, new Function<A, B>() {
@Override
public CustomerFinance apply(final A input) {
return input.getB();
}
});
:
List<A> myList = ...
Map<A, B> mappings = new HashMap<>(myList.size());
for (A a : myList) {
mappings.put(a.getB(), a);
}
オブジェクトから取得した一意のインデックスを持つマップにオブジェクトのリストを置く例えば
はグァバを使用して、このようになります
GuavaのマッピングにはLOCが5つあります(@Override
行は数えません)。プレーンJavaのLOCは4つです。
なぜここでグアバのユーティリティを使うべきですか?最初にUtilを作成するインセンティブは何ですか?私はグアバが私に提供するいくつかの付加的な利益を見逃していますか?
Java 8は2年以上にわたって使い果たされており、1行でタスクを実行できます。なぜあなたはJava 7を気にしますか? – Bohemian
私は真剣にしていませんし、後でもっと早くアップグレードしたいと思います。残念ながら、現在取り組んでいるプロジェクトに関わる重要なステークホルダーは、私は反対しています。 –
あなたのJava 7は、Guavaコードの不完全な "翻訳"であるため、短くて済みます。 Guavasの結果のMapは不変であり、値の1つとして 'null'を許可しません。あなたのコードはそれを完全に無視します。 – Tom