草庐IT

java - 如何将 Option<Try<Foo>> 翻转为 Try<Option<Foo>>

我有一个Try>.我要flatMapFoo进入Bar,使用它使用可能会失败的操作。如果我的Option不是失败是一个Option.none(),(并且Try成功),在这种情况下,没有什么可做的。所以我有这样的代码,它确实有效:Try>myFlatMappingFunc(OptionfooOpt){returnfooOpt.map(foo->mappingFunc(foo).map(Option::of)/*ew*/).getOrElse(Try.success(Option.none());//doubleew}TrymappingFunc(Foofoo)throwsIOExcepti

Javaslang 对象分解不起作用

我正在使用Javaslang-2.1.0-alpha和它的Javaslang-match来做一些对象分解。根据this by blogDaniel在“MatchtheFancyway”部分发表的帖子:Match(person).of(Case(Person("Carl",Address($(),$())),(street,number)->...))应该检索与Address中的两个通配符模式匹配的值进入street和number但该示例甚至无法编译。后来我意识到所有对象都必须包裹在原子模式中,即“Carl”变成了$(“Carl”)。这是阅读后thisissue.我关注了updatedt

java - 使用每种类型的计数将数组转换为 Javaslang Map

我目前正在查看Javaslang库,并且正在尝试将我的一些代码转换为Javaslang。我目前有这段代码,全是纯JavaCell[][]maze;//frominputMapcellCounts=Stream.of(maze).flatMap(Stream::of).collect(groupingBy(c->c,counting()));我正在考虑将其转换为Javaslang,因为我对这个库很感兴趣,我只是想尝试一下。我正在尝试做类似的事情,但转换为Javaslang映射而不是java.util.Map。到目前为止,我已经尝试过了,但由于看不到转换它的方法,我陷入了困境。Array.

java - 具有泛型的 Vavr 给出了不兼容的类型

谁能解释一下为什么这段代码:interfaceLol{defaultTry>lol(){returnTry.of(List::empty);}}classLolImplimplementsLol{@OverridepublicTry>lol(){returnTry.of(()->List.of(1,2,3))//.onFailure(Object::hashCode);}}如果我取消注释onFailure语句会编译失败吗?不知道这里发生了什么。如何改进? 最佳答案 您可以调用Try.of()返回显式泛型以满足编译器检查。像这样的东西

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

我有一个方法将String作为输入并返回一个String。以下ASCII艺术展示了逻辑流程:OptionoptA=finder.findA(input);optA/\isEmpty()/\isDefined()/\"ERR_1"OptionoptB=finder.findB(optA.get().bid);/\isEmpty()/\isDefined()/\"ERR_2"opt2.get().id基本上对于给定的input我正在寻找A对象,它返回时包含在Option中。然后是A存在我正在寻找B-也包含在Option中,否则返回ERR_1。然后如果B存在则返回它的id,否则返回ERR_2

java - 为什么这个转换器需要类型转换?

我需要在java中实现一个枚举到枚举的转换器:Enum_2>Enum_1,我想以通用的方式进行。所以我定义了一个接口(interface):interfaceLabelAware{StringgetLabel();TgetObject();}和Enum_1:enumEnum_1{A,B;StringgetValue(){return"whatever";}}和实现了LabelAware的Enum_2需要转换成Enum_1:enumEnum_2implementsLabelAware{C("c",Enum_1.A),D("d",Enum_1.B);privatefinalStringla

java - 类型推断似乎失败了 vavr 的 Try 对 jOOQ 的 fetchOne() 函数有效

我正在使用vavr和jOOQ,这是最近出现的两个很棒的库,它们允许我们在常规Java服务器应用程序中使用函数式方言。我正在尝试使用jOOQ,它相当于SQL的selectcount(*)。查询是这样构成的:ResultQueryquery=dsl.selectCount().from(Tables.SH_PLAYER_REPORT).join(Tables.SH_PLAYERS).on(Tables.SH_PLAYERS.PLAYER_ID.eq(Tables.SH_PLAYER_REPORT.PLAYER_ID)).join(Tables.SH_LOCATION).on(Tables.