问题标签 [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 投票
2 回答
211 浏览

java - 为什么这个转换器需要铸造?

我需要在 java 中实现一个枚举到枚举转换器:Enum_2>Enum_1我想以通用的方式来做。

所以我定义了一个接口:

Enum_1

Enum_2实现LabelAware并需要转换为Enum_1

最后,这是一个通用转换器(List.ofAll()来自javaslang):

还有一个主要方法:

这一切都编译并运行良好,但是我不知道为什么我需要将Converter.map方法的结果转换为D,因为我已经声明D了扩展Enum。可以在没有任何警告的情况下以通用方式完成吗?

0 投票
3 回答
1241 浏览

java - 如何使用选项实现这个嵌套流?

我有一个方法可以String作为输入并且还应该返回一个String.

以下 ASCII 艺术展示了逻辑流程:

基本上对于给定的,input我正在寻找AOption. 然后是A我正在寻找的存在B- 也包裹在 an 中Option,否则 return ERR_1。然后如果B存在则返回它的 id,否则返回ERR_2

我想知道如何以一种简洁明了的方式(没有任何ifology)使用可选项(或模式匹配?)来实现它 - 可能是单行的。

有人可以提出一些建议吗?

可以在这里找到要试用的源代码。

0 投票
1 回答
78 浏览

java - 为什么 javaslang CharSeq 是最终的?

我们都熟悉java 中为什么是 final的争论。String

但是,我想知道为什么 javaslang 的CharSeq也是最终的。

考虑到 javaslang 的 FP 灵感和 Haskell 允许类型同义词的事实,我原以为这将是一个很好的机会,CharSeq可以将方法设为 final。

然后,非finalCharSeq将允许我用空主体对其进行扩展,以创建类型同义词的良好近似。这将避免在需要额外类型安全的情况下使用微小类型模式的样板。

我确信这不是设计是有充分理由的,这就是我在这里问的原因。

2016 年 12 月 16 日更新:我在 github 上向 javaslang 团队提出了增强请求,问题#1764

0 投票
1 回答
195 浏览

java - cdi 实例上的 javaslang List.of()

我有多个带有我创建的限定符的类:

这是限定词(对问题不重要)

在另一个类中,我使用 javax.enterprise.inject.Instance<> 注入这些实例

如果我执行“正常”迭代(对于...),我会得到对象(TruckService 或 CarService)作为 somefunction() 的参数。

但是如果我使用javaslang 的List.of(...) 我会得到实例本身。我认为这是预期的行为

是否有可能在可以包含一个或多个 bean 的实例上使用 List.of(取决于注入绑定)。(我已经尝试在实例上调用 iterator()、select())

0 投票
1 回答
369 浏览

java - Javaslang 对象分解不起作用

我正在使用 Javaslang-2.1.0-alpha 及其 Javaslang-match 等效项来进行一些对象分解。根据Daniel 在“Match the Fancy way”部分的博客文章:

Address应该检索与内部两个通配符模式匹配的值streetnumber但该示例甚至无法编译。后来我意识到所有对象都必须包装在原子模式中,即“Carl”变为$(“Carl”)。这是在阅读了这个问题之后。

我按照更新的教程进行操作,但此示例没有更新。

我将示例更新为:

它可以编译,但从控制台输出来看,我的值没有正确匹配:

很明显,street包含Carlnumber,整个Address对象。

当我尝试添加第三个 lambda 参数来捕获Carl时:

代码无法编译,lambda 表达式带有红色下划线,并带有以下错误文本:

$_在最新版本的 javaslang-match 中,无法忽略一个值。所以我想匹配每个返回三个 lambda 参数的原子模式,如上所述。

我需要了解这个库的人向我解释如何在最新版本中进行对象分解。

0 投票
1 回答
165 浏览

functional-programming - 从Javaslang 中的 Map 中提取键和左值

给定 a ,将其转换为 a仅包含具有布尔值的条目Map<String, Either<Boolean, Integer>的最直接方法是什么?Map<String, Boolean>

现在我有这个:

这行得通,但似乎不必要地冗长,而且似乎应该有一些更紧凑、一步、“平面图”的解决方案。

0 投票
2 回答
578 浏览

java - javaslang Try的流包含异常时如何抛出

在 javaslang 中,如果我有Stream<Try<MyClass>,当流中的任何项目包含已检查的异常时,我该如何抛出?我不能这样做,因为 peek 不接受抛出 lambda

谢谢

0 投票
1 回答
313 浏览

java - 使用 Java 8 Predicate 找到“最”正确的值

感谢您查看我的问题!

我在使用 Streams 时遇到了一些麻烦,其中多个谓词按特定顺序应用。

为了举例,请考虑以下 IntPredicates:

第1部分

我已将我遇到的问题转换为“FizzBu​​zz”式的版本,试图通过以特定顺序将谓词应用于流来找到正确的答案。像这样:

我不认为这是非常漂亮的代码,有没有更好的方法来实现这一点?

第2部分

如果我真的需要应用谓词来查看流中是否存在适当的值,并计算要返回的相关值(在这种情况下是要打印的字符串),怎么样?那看起来怎么样?

提出的幼稚解决方案:

这似乎更糟,无论是在美学上还是因为增加了迭代。

第 3 部分

是否可以使用JavaSlang Match 以更漂亮、更有效的方式解决这个问题?

这里明显的问题是“.findFirst()”,在这种情况下,它是整数 1,使整个表达式评估为“未找到”,然后终止。

我想要的是从本质上获取与匹配中第一个谓词匹配的任何内容,并使用该值(如果存在),并且仅在找不到与第一个匹配项匹配的情况下才给我与第二个条件匹配的任何内容,依此类推,如果流中没有任何值与任何谓词匹配,则只给我默认值(“未找到”)。

必须有更好的方法来做到这一点,对吧?还是我只是在浪费时间尝试做一些最好留给更传统的命令式风格的事情?

感谢您阅读我的问题!

0 投票
3 回答
1020 浏览

java - 将数组转换为具有每种类型计数的 Javaslang 映射

我目前正在查看 Javaslang 库,并且正在尝试将我的一些代码转换为 Javaslang。

我目前有这段代码,都是纯Java

我正在考虑将其转换为 Javaslang,因为我对这个库很感兴趣,我只是想玩弄它。

我正在尝试做类似的事情,但转换为 Javaslang 映射而不是 java.util.Map。

到目前为止我已经尝试过了,但后来我被卡住了,因为我看不到转换它的方法。

所以我有我的 Cell 对象列表,但我想弄清楚如何将其转换为 javaslang.collection.Map

*编辑 *

我已经研究过通过这个将我原来的 java.util.Map 转换为 javaslang.collections.Hashmap

这似乎仍然不符合 Javaslang,但我会继续寻找。

0 投票
2 回答
3011 浏览

java - 如何在列表中查找 WebElement通过文字?

我想在List<WebElements>文本中找到 WebElement。我的方法有这样的论点:List<WebElement> webElements, String text. 对于匹配文本,我更喜欢使用javaslang库。所以,我们有什么:

使用 javaslang 我写了这样简单的匹配:

我不明白如何以良好的方式编写循环以在List<WebElemnt>文本中查找 WebElement。谢谢你们的帮助。