问题标签 [vavr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
317 浏览

java - 返回泛型类型时出现 ClassCastException

我正在编写 Spring 应用程序,我想将它分成几层以将域与框架完全分开。

因此,我的域方法正在返回 vavr Either<Error, T>,而我的控制器正在为所有这些方法使用简单的解析器。

问题是,我不想从控制器返回我的域实体,所以我编写了通用映射器,它将使用单一方法将每个域对象转换为其 dto。

Reservation并且ReservationMapper这里是一个域的具体实现,if当然可以用更好的解决方案代替,但事实并非如此。

情况是,它不起作用。它抛出

java.lang.ClassCastException:类 com.johndoe.reservationsystem.adapter.dto.ReservationDto 不能转换为类 org.springframework.util.MultiValueMap

我找到了创建空抽象类的解决方法Dto,让我所有的 dto 类扩展它,然后只返回Dto而不是YtoDto方法中。关键是,我不太喜欢它,我想找到更好的解决方案。

可能没有必要,但这里是实现ReservationMapper

0 投票
7 回答
4130 浏览

java - Java 函数式编程:如何将 for 循环中的 if-else 阶梯转换为函数式?

期望是从输入列表中派生 3 个列表itemIsBoth, 。如何将下面的代码转换为功能样式?(我知道这段代码在命令式风格中足够清晰,但我想知道声明式风格真的无法处理这样一个简单的例子)。谢谢。aItemsbItemsitems

0 投票
1 回答
279 浏览

java - 返回时不兼容的类型

我正在使用 vavrEither来控制我的应用程序的流程并且它工作得很好,直到我不必混合几个域......

首先,我有一个在域之间共享的接口。

成功也是如此,当我只想通知用户并且不需要返回特定对象时。

现在,每个域DomainError都是这样实现的

类似地,它会寻找EmailError其中只有另一个值的内部。我现在有EmailFacade

它的一项服务返回

现在,我需要从处理用户注册的其他域调用它。

为了做到这一点,我写了这个方法

我在这里做的事情很少,但相关部分是最后一个返回语句,以上所有内容都在工作。emailFacade.sendUserVerificationEmail()返回Either<DomainError, SuccessMessage>,与register()方法相同。但由于某种原因,我收到了这个错误

错误:(28、17)java:不兼容的类型:推理变量 U 具有不兼容的边界等式约束:com.johndoe.myapp.domain.SuccessMessage 下限:io.vavr.control.Either<com.johndoe.myapp.domain.DomainError,com.johndoe.myapp.domain.SuccessMessage>

我真的无法理解这里出了什么问题......

0 投票
1 回答
2546 浏览

vavr - 使用 vavr 如何捕获并重新抛出相同的异常

我不熟悉使用 vavr 进行编程的函数式风格。

我有一个方法在成功执行时返回数据,如果失败,则返回 MyCustomRunTimeException。

在我的服务类中,我正在调用这个 API 方法,当 API 方法失败时,我必须捕获异常并清除我的应用程序缓存并将相同的异常返回给调用者(在我的情况下是另一个服务方法)。

如果方法调用成功,我必须返回实际对象,而不是 Try 包装对象。

如何使用 vavr Try 来实现这一点?

我尝试在 vavr Try.recover 中使用不同的方法,但我无法抛出相同的异常。

如果有人可以提供,任何示例或片段都可能对我非常有帮助。

提前致谢。

例子:

0 投票
1 回答
971 浏览

java - 将 Java Map 代码更改为 VAVR (javaslang)

我有 2 种涉及纯 Java 中的 Map 的方法,我的任务是将它们更改为完整的 VAVR。现在的问题是我得到

我认为我知道问题出在哪里,但作为初学者,我无法在完整的 VAVR 中构建该代码。我知道这种问题在 stackoverflow 上是不受欢迎的,但网络上关于 VAVR 的材料数量有限,我根本找不到任何可以帮助我的例子。我恳请任何帮助 - 代码片段,在哪里可以找到类似示例的建议或任何可以帮助我的东西。我已经阅读了 VAVR 网页上的手册和许多教程,但仍然无法构建我的方法。希望你能理解,我并不为这个话题感到骄傲。

0 投票
1 回答
2337 浏览

java - 如何使用 vavr 返回 void 或 String

当某些条件不满足时,我有一个函数应该不返回任何内容(void)或字符串。

我试试这条线 Either.left(Void)

0 投票
2 回答
167 浏览

java - Java groupingBy:使用单个 Stream 获取两个(或更多)组

如果我必须使用 Stream 基于两个不同的字段生成两个组,这是我可以采取的一种方法:

但是这种方法会遍历列表两次。以一种命令式的方式,我可以在单次迭代中得到相同的结果,如下所示:

无论如何,是否可以使用流以声明方式完成相同的操作,而无需迭代两次?

0 投票
3 回答
263 浏览

java-8 - Java:函数式编程中的域对象是否禁止使用实例方法?

由于函数式编程将数据和行为分开处理,并且行为不应该改变实例的状态,所以 FP 是否建议对域对象根本不使用实例方法?还是我应该始终将所有字段声明为最终字段?我在 Java 等面向对象语言的上下文中要求更多。

0 投票
2 回答
464 浏览

java - 为什么不能所有的 Functor 都是 Monad?

据我所知,函子是那些有的map(),而单子是那些也有的flatMap()。所有的 Monad 都是 Functor,但反之则不然。是什么阻止了 Functor 实现 aflatMap()并成为 Monad?由于某些限制,是否有任何函子保持这种状态。你能提供一些例子吗?谢谢。

0 投票
2 回答
77 浏览

java - 如果有多个间歇性中断/返回,声明式风格会失败吗?

下面的代码在命令式风格中很直观。尝试以声明式风格做同样的事情会使其更复杂吗?