问题标签 [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.
java - 如何正确使用 VAVR 集合来保证线程安全?
VAVR 集合是“不可变的”。
那么,如果我有静态变量,例如,保存所有 WebSocket 会话,我将如何使用 VAVR 以便集合是线程安全的?
例如:
spring - 如何在 Spring 控制器中将表单字段转换为 Vavr 选项
我有一个类Outcome
,其中一个字段是Schema
. 但是因为后者可能为 null,所以我定义了Outcome
'sgetSchema()
以返回包装在 Vavr's 中的值Option
。在我的 Spring Boot 2 应用程序中,处理更新Outcome
s 的控制器方法有一个 parameter @Valid Outcome outcome
。但是,当尝试从表单数据填充此参数时,Spring 的转换服务会标记以下错误:
无法将类型“java.lang.String”的值转换为属性“模式”所需的类型“io.vavr.control.Option”:找不到匹配的编辑器或转换策略
也就是说,它无法将诸如“1234”之类的字符串标识符映射到Schema
具有该标识符的现有实例,Long
然后将Outcome
实例的schema
字段设置为该标识符。尽管事实上在我的WebMvcConfigurer
课堂上我已经添加到 Spring 的转换服务 Spring Data'sQueryExecutionConverters
中,声称可以处理转换 Vavr Optional
:
如果我将Outcome
'sgetSchema()
改为返回 Java 8's ,则为传递给我的控制器方法的实例成功设置Optional<Schema>
了模式字段。Outcome
java - Java Vavr:失败时记录异常
我想在使用 VAVR(以前称为 javaslang)时记录异常。下面是示例代码片段。
我试图在 onFailure() 块中记录异常,但没有记录任何内容。请就此给我建议。
问候,杰
java - 如何翻转选项> 试一试
我有一个Try<Option<Foo>>
. 我想flatMap
Foo
进入一个Bar
,使用它使用可能失败的操作。如果 myOption<Foo>
是Option.none()
, (并且Try
成功),这不是失败,在这种情况下,没有什么可做的。
所以我有这样的代码,它确实有效:
然后我称之为:
这确实有效,但它看起来真的很难看。
有没有更好的方法来翻转Try
和Option
周围?
注意 1:我主动不想在其中调用Option.get()
和捕获它,Try
因为它在语义上不正确。我想我可以恢复,NoSuchElementException
但这似乎更糟糕,代码方面。
注2(解释标题):天真地,显而易见的事情是:
除了这有错误的签名并且不让我映射上一个可能失败的操作并且还成功返回了缺少值的操作。
java - 地图调用中的 if 逻辑消除
我经常在基于 vavr 的代码中看到:
有没有办法map
使用某些结构从调用中消除这种逻辑?我觉得这个if
条件很尴尬。
java - Vavr 中 java.util.Collection 的惰性视图
java.util.Collection
我有一个在返回值时使用的现有 api 。我想在我的程序的后面部分使用 Vavr 使用这些值,但我不想使用像这样的急切方法List.ofAll
(因为我不想遍历这些Collection
对象两次)。我的用例是这样的:
可能吗?
java - vavr 的 Future 不执行某些代码,使用方法 andThen
在这段代码中,我有两种使用 vavr 库的方法。从这个库中,我使用 Future 和方法,然后,这个方法在未来完成时运行,这是同步的,但是当线程调用这个方法中的方法“printTime”时,所有程序都停止了,测试是成功。这是方法
这是测试
最后方法 printTime 中的结果是:
方法是:
但有时控制台是空的。
非常感谢您 :)
java - 使用 vavr 中的索引迭代列表
我正在使用来自vavr库的集合。我有一个这样定义的元素列表:
如何迭代列表的元素并同时访问索引?在 Groovy 中有一个方法eachWithIndex
。我正在寻找类似的东西vavr
。我想这样使用它:
我怎样才能做到这一点vavr
?
java-8 - javaslang/Vavr:如何尝试使用资源
这是我的代码片段:
我正在使用 try-with-resources 或在“finally”子句中关闭此“Stream”。在这条线上Files.lines(Paths.get("insurance_sample.csv"))
任何人都可以帮助我使用 Vavr 使用 try-with-resources 吗?
java - 是否可以将地图接口与 io.vavr.collection.HashMap 一起使用?
在尝试将Vavr的不可变映射 ( io.vavr.collection.HashMap
) 与java.util.Map
接口一起使用时,我没有设法让代码编译 - 至少不是通过.of()
使用 io.vavr.collection.HashMap
.
本质上,这是我正在使用的 Maven 依赖项:
使用 Java 1.8
这是代码:
这是我得到的错误:
不兼容的类型。必需的 Map 但 'of' 被推断为 HashMap:不存在类型变量 K、V 的实例,因此 HashMap 符合 Map
任何想法如何分配io.vavr.collection.HashMap
to的实例java.util.Map
?这甚至可能吗?
根据io.vavr.collection.HashMap
文档,它实现了java.util.Map
接口:
https://static.javadoc.io/io.vavr/vavr/0.9.2/io/vavr/collection/HashMap.html
网上有一些似乎可行的例子,比如在这个博客上你可以找到这段代码: