Мне часто возникает соблазн написать код с использованием утилиты коллекции Guava и найти себе переписывание кода в простой Java 7 после просмотра фрагмента кода, потому что IMHO оказывается более кратким и простым для чтения с использованием простой старой Java.Guava Collection Utils vs. plain 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();
}
});
, тогда как в ванили Java 7 было бы:
List<A> myList = ...
Map<A, B> mappings = new HashMap<>(myList.size());
for (A a : myList) {
mappings.put(a.getB(), a);
}
Это 5 LOC для отображения в Guava (даже не считая строки @Override
) против 4 LOC в простой Java.
Почему я должен использовать утилиты Guava здесь? Каков был стимул для создания utils в первую очередь? Не хватает ли какой-то дополнительной выгоды, которую предоставит мне Гуава?
Java 8 был удален более 2 лет, и он может выполнить задачу в 1 строке. Почему вы заботитесь о Java 7? – Bohemian
Я серьезно не хочу, и я хотел бы обновить его скорее раньше, чем позже. К сожалению, важные заинтересованные лица, участвующие в текущем проекте, над которым я работаю, не согласны. –
Ваша Java 7 только короче, потому что это неполный «перевод» кода Guava. Полученная карта Guavas является неизменной и не позволяет «null» как одно из значений. Ваш код полностью игнорирует это. – Tom