Меня тут обвинил коллега в том, что я на любом языке пишу как на лиспе. Я посмотрел свой код в новом проекте и понял что обвинения были не на совсем пустом месте, практически все написано примерно вот в таком стиле
public List<MethodDescription> available(MethodType type) {
return ctx.getBeansWithAnnotation(MethodProvider.class).entrySet()
.stream()
.map(Map.Entry::getValue)
.flatMap(e -> Arrays.asList(e.getClass().getMethods()).stream())
.filter(m -> m.getAnnotation(Method.class) != null && m.getAnnotation(Method.class).type() == type)
.map(fm -> fm.getAnnotation(Method.class))
.map(a -> new MethodDescription(
a.value(),
src.getMessage("method." + a.value(), null, a.value(), dh.getLocale()),
src.getMessage("method." + a.value() + ".description", null, a.description(), dh.getLocale())))
.collect(toList());
}
Может действительно пора переходить на тот же clojure?
Перемещено maxcom из talks