Вопросы о библиотеке функционального программирования Vavr (ранее известной как Javaslang).
1 ответ

Использование локальных неизменяемых коллекций Vavr внутри лямбды Java 8

Учитывая фрагмент кода ниже, как бы я использовал неизменяемые списки или потоки Vavr? Я не могу как локальная переменная, так как нет способа пометить ее как окончательную. Я не хочу рекламировать List<CurvePoint> points к ученику. import io.…
12 дек '17 в 23:21
1 ответ

javaslang List.of() на экземпляре cdi

У меня есть несколько классов с Qualifier, который я создал: @ServiceComponent(restPath = "/trucks") public class TruckService { } @ServiceComponent(restPath = "/cars") public class CarService { } вот классификатор (не важно для вопроса) @Qualifier …
22 дек '16 в 06:36
1 ответ

Выполнение побочных эффектов в Вавре

Я просматриваю раздел Руководства по использованию Vavr о выполнении побочных эффектов с помощью Match и другого "синтаксического сахара", как они его называют. Вот пример, приведенный там: Match(arg).of( Case($(isIn("-h", "--help")), o -> run(th…
3 ответа

Как вернуть первое возникшее исключение?

Есть метод validate, который в качестве входных данных принимает экземпляр Option и Predicate - два аргумента (да, я знаю Option должны быть переданы в качестве аргумента, но это упрощенный сценарий реального мира здесь. Сейчас если Option пусто мне…
1 ответ

Почему Vavr Either не распознает параметр функции map()?

Я пачкаю руки фантастической библиотекой vavr (0.9.2). Вот фрагмент кода, который призван собрать либо: Either<Tuple2<Enum<ReportByTeamExecutionErrors>,String>, List<MayurDAO>> payloadPreparationResult = new ReportByTeamCrite…
06 дек '18 в 12:49
1 ответ

Кажется, что вывод типа не работает vavr Try работает с функцией fetchOne() в jOOQ

Я использую vavr и jOOQ, две фантастические библиотеки, появившиеся в последнее время, что позволяет нам использовать функциональные диалекты в обычных приложениях на Java-сервере. Я пытаюсь использовать jOOQ, что эквивалентно количеству выбора SQL …
13 дек '18 в 11:47
1 ответ

Джексон - @JsonCreator возвращает дженерики

Я хочу интегрировать библиотеку проверки vavr в мою команду dto таким образом, чтобы при десериализации команды dto из запроса тип возвращаемой статической фабрики был Try, но Джексон выбрасывает следующую ошибку: Ошибка определения типа: [простой т…
24 дек '18 в 21:38
1 ответ

Мемоизация с Вавром кажется незаметной

Когда функция определяется следующим образом static Function1<BigInteger, BigInteger> fibonacci = Function((BigInteger value) -> value.equals(BigInteger.ZERO) ? BigInteger.ZERO : value.equals(BigInteger.ONE) ? BigInteger.ONE : value.equals(…
02 ноя '17 в 19:29
1 ответ

Как правильно реализовать это с помощью Vavr?

Я хотел бы получить ваш совет о том, как правильно написать этот код на функциональном пути: private Option<CalcResult> calculate(Integer X, Integer Y) { if (X < Y) return Option.none(); return Option.of( X + Y ); } public Option<CalcRes…
09 янв '19 в 15:43
2 ответа

Был ли удален vavr io.vavr.API в версии 1.0.0-alpha-2?

Я изучал использование превосходной функциональной библиотеки vavr // https://mvnrepository.com/artifact/io.vavr/vavr compile group: 'io.vavr', name: 'vavr', version: '0.9.2' // https://mvnrepository.com/artifact/io.vavr/vavr-match compile group: 'i…
15 фев '19 в 09:10
1 ответ

Как кэшировать инструментированный класс с помощью экспедитора экземпляров?

Вариант использования - реализовать грязный полевой трекер. Для этого у меня есть интерфейс: public interface Dirtyable { String ID = "dirty"; Set<String> getDirty(); static <T> T wrap(final T delegate) { return DirtyableInterceptor.wrap…
04 май '17 в 13:30
1 ответ

Проходить цепочку объектов рекурсивно в функциональном стиле

Обычный цикл в стилях императивного кодирования состоит в том, чтобы следовать цепочке объектов, чтобы найти конец, например: private ThreadGroup rootOf(ThreadGroup leaf) { ThreadGroup rootGroup = leaf; ThreadGroup parentGroup; while ((parentGroup =…
1 ответ

Eclipse помечает (рабочий) код как ошибку компиляции и не будет работать

У меня есть довольно сложный код, который использует Javaslang. Если я соберу его в банку, он будет работать нормально. Однако, когда я пытаюсь войти в него в Eclipse для отладки, Eclipse помечает его как ошибку компиляции и умирает, когда он достиг…
15 июн '17 в 14:43
3 ответа

Как перевернуть опцию<Try <Foo >> в Try<Option <Foo >>

У меня есть Try&lt;Option&lt;Foo&gt;&gt;, я бы хотел flatMap Foo в Bar, используя его, используя операцию, которая может потерпеть неудачу. Это не сбой, если мой Option&lt;Foo&gt; является Option.none(), (и Try был успехом) и в этом случае делать не…
31 мар '18 в 01:27
0 ответов

Javaslang Option.nothing()

Недавно я начал читать о Javaslang и его улучшениях для классов, добавленных в Java 8. Окунувшись в документацию, я наткнулся на следующий метод: Option.nothing() Который возвращает экземпляр синглтона типа Option&lt;Void&gt;, Однако я не мог придум…
28 апр '17 в 18:55
3 ответа

Вавр с дженериками выдает несовместимые типы

Может ли кто-нибудь объяснить, почему этот код: interface Lol { default Try&lt;Seq&lt;? extends Number&gt;&gt; lol() { return Try.of(List::empty); } } class LolImpl implements Lol { @Override public Try&lt;Seq&lt;? extends Number&gt;&gt; lol() { ret…
26 окт '18 в 12:18
3 ответа

Как реализовать этот вложенный поток с опциями?

У меня есть метод, который принимает String в качестве входных данных, а также должен возвращать String, Следующее ASCII искусство представляет логический поток: Option&lt;A&gt; optA = finder.findA(input); optA /\ isEmpty() / \ isDefined() / \ "ERR_…
2 ответа

Есть ли лучший способ регистрировать сбои в цепочке предложений Java Vavr Try?

Я пытаюсь войти на каждом этапе сбоя, и, насколько я могу судить, мне нужно вложить попытку и войти в плоскую карту. Try.of(() -&gt; true). onFailure(h -&gt; System.out.println("first onFailure")). flatMap(i -&gt; Try.of(() -&gt; { throw new Runtime…
27 авг '18 в 19:55
3 ответа

Преобразование массива в карту Javaslang с количеством для каждого типа

В настоящее время я смотрю на библиотеку Javaslang и пытаюсь преобразовать часть своего кода в Javaslang. В настоящее время у меня есть этот кусок кода, который все чисто Java Cell[][] maze; //from input Map&lt;Cell, Long&gt; cellCounts = Stream.of(…
01 мар '17 в 15:09
2 ответа

Почему этот конвертер нуждается в кастинге?

Мне нужно реализовать преобразователь перечисления в перечисление в Java: Enum_2 > Enum_1 и я хотел бы сделать это в общем виде. Итак, я определил интерфейс: interface LabelAware&lt;T extends Enum&gt; { String getLabel(); T getObject(); } а также En…
05 ноя '16 в 15:20