- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
private Map<Class<?>, Map<String, String[]>> compressDependencies(
Map<Class<?>, Map<String, List<String>>> dependencies) {
final Map<Class<?>, Map<String, String[]>> result =
new FastMap<Class<?>, Map<String, String[]>>(dependencies.size());
final Set<Entry<Class<?>, Map<String, List<String>>>> entrySet = dependencies.entrySet();
for (Entry<Class<?>, Map<String, List<String>>> entry : entrySet) {
final Map<String, List<String>> value = entry.getValue();
final Map<String, String[]> desc = new FastMap<String, String[]>(value.size());
final Set<Entry<String, List<String>>> subEntries = value.entrySet();
for (Entry<String, List<String>> valueEntry : subEntries) {
final List<String> list = valueEntry.getValue();
if (list != null && !list.isEmpty()) {
desc.put(valueEntry.getKey(), list.toArray(new String[list.size()]));
}
}
result.put(entry.getKey(), desc);
}
return result;
}
Код от "мега разработчика", архитектора очень большого проекта.
PS Будьте осторожны в использовании java generics :)
чувак нереально крут
Не могу согласиться насчёт generics. Без них его код был бы вообще смертельным.
Хотя если оно ДЕЙСТВИТЕЛЬНО надо, то код вполне нормальный.
Более того, при подцветке синтаксиса он вполне даже нормально читается.
Единственное, к чему бы я действительно придрался - это к проверкам ключей на null.
Так что много - не значит плохо. Главное - грамосто использовать.
P.S. Я бы еще к форматированию придрался - для generic'ов оно имеет довольно большой вес.