Size: a a a

2020 June 14

CC

Chris Calvin in pro.cxx.holywars
Вроде очевидно что есть 3 типа входных параметров, один возвращающий, есть типа который описывает функцию которая это обрабатывает
источник

KK

Kirill Kaymakov in pro.cxx.holywars
Chris Calvin
я хочу вытащить функцию-обработчик из мапы, которая принимает 3 параметра, если нифига нету - отдать дефолтный хендлер
И где это видно по сигнатуре?
источник

CC

Chris Calvin in pro.cxx.holywars
Ага
источник

KK

Kirill Kaymakov in pro.cxx.holywars
getHandler чего?
источник

CC

Chris Calvin in pro.cxx.holywars
Kirill Kaymakov
getHandler чего?
<T, V, U, F extends TriFunction<T, V, U, R>, R, K> R getHandler(final K key, final Map<K, F> map, final T t, final V v, final U u, final R defaultValue)
источник

KK

Kirill Kaymakov in pro.cxx.holywars
Попугая?
источник

KK

Kirill Kaymakov in pro.cxx.holywars
Ты с таким кодстайлом через 2 дня не вспомнишь нахера этот метод нужен
источник

KK

Kirill Kaymakov in pro.cxx.holywars
Optional.ofNullable(map.get(key))
     .map(func -> func.apply(t, v, u))
     .orElse(defaultValue);
источник

KK

Kirill Kaymakov in pro.cxx.holywars
А вот это отдельного оскара заслуживает
источник

CC

Chris Calvin in pro.cxx.holywars
getHandler - шаблонная функция, которая необходима в случае когда у вас определен некоторый функциональный интерфейс(или функциональные интерфейсы) с тремя входными параметрами, и возвращающим значением. Ты описываешь связь между типами сообщений и их обработчиками. Потом вызываешь метод передевая эту мапу с обработчика, параметры которые необходимо передать в интерфейс и дефолтный хендлер, который вызывается если не найдено соответствие
источник

CC

Chris Calvin in pro.cxx.holywars
Kirill Kaymakov
Optional.ofNullable(map.get(key))
     .map(func -> func.apply(t, v, u))
     .orElse(defaultValue);
В чем проблема здесь?
источник

KK

Kirill Kaymakov in pro.cxx.holywars
Chris Calvin
В чем проблема здесь?
Ну ты сам посмотри
источник

CC

Chris Calvin in pro.cxx.holywars
Расскажи мне, я глупенький
источник

KK

Kirill Kaymakov in pro.cxx.holywars
Ты участок, где нужна императивность заменяешь декларативностью
источник

KK

Kirill Kaymakov in pro.cxx.holywars
Сильно ухудшая читабельность
источник

CC

Chris Calvin in pro.cxx.holywars
Тут не нужна императивность
источник

CC

Chris Calvin in pro.cxx.holywars
Я все стараюсь в декларатив перевести)
источник

KK

Kirill Kaymakov in pro.cxx.holywars
Тут чистая императивность
источник

CC

Chris Calvin in pro.cxx.holywars
Почему же?)
источник

KK

Kirill Kaymakov in pro.cxx.holywars
Декларативность идет нафиг в коде когда работаешь с одним элементом
источник