jjzjj

Chaining

全部标签

java - 在 Java 8 中使用先前链接的 thenCompose lambda 的值

我的同事喜欢的Java8编码风格是一直链接异步调用,例如CompletionStagesomeMethod(){returndoSomething().thenCompose(a->{//...returnb;}).thenCompose(b->{//...returnc;}).thenCompose(c->{//...returnd;}).thenApply(d->{//...returne;});}我有类似上面的内容,但还有一个额外的挑战:我需要在后面的lambda中记忆在一些lambda中检索到的值。例如,CompletionStagesomeMethod(){returndoS

Java 泛型 : chaining together generic function object

我一直在努力解决以下问题。我有一系列函数对象,每个函数对象都有自己的输入和输出类型,这些类型是通过java中的泛型类型参数定义的。我想将它们排列成一个链,以便将原始数据输入到第一个函数,转换为输出类型,这是下一个对象的输入类型,依此类推。当然,这对于硬编码来说是微不足道的,但我希望代码可以插入到新的函数对象中。如果我只是省略了类型参数(只有最终输出类型),这就是事情的样子:publicTprocess(){Iteratorit=source.provideData();for(Pipepipe:pipeline){it=pipe.processIterator(it);}returns

Java 流 : use optional filter() operations on chaining

注意:此问题与java.util.Optional不相关。在处理流时,我经常使用这样的逻辑:Streamstream=myInitialStream();if(needsFilter1)stream=stream.filter(c->whatever1());if(needsFilter2)stream=stream.filter(c->whatever2());...returnstream.collect(toList());我想要实现的是使用链接将上面的代码转换为单个表达式。我发现这更具可读性和直接性。到目前为止,我发现实现这一目标的唯一方法是:returnmyInitialSt

java - BeanUtils 不适用于链 setter

例如classtester{@TestpublicvoidtestBeanUtils()throwsInvocationTargetException,IllegalAccessException,NoSuchMethodException{Strangerstranger=newStranger();BeanUtils.setProperty(stranger,"name","wener");BeanUtils.setProperty(stranger,"xname","xwener");BeanUtils.setProperty(stranger,"yname","ywener")

Java 8 Lambda Chaining - 类型安全执行

片段1:Optional.of(s).map(str->str).orElse("");片段2:Optional.of(s).map(str->str).orElse(Optional.empty());片段3:Optional.of(s).map(str->Optional.of(str)).orElse("hello");Snippet1编译正常,但Snippet2和Snippet3编译时出现类型不兼容错误。虽然Snippet2和Snippet3失败是件好事,但我不明白它们是如何评估的。换句话说,我认为我缺少一些有关lambda本身如何链接/调用的基础知识。如果有人能提供帮助,我们

java - mockito 中的动态链接 "thenReturn"

我有一个Tuple模拟类,它的getString(0)和getString(1)方法预计会被调用n次。而不是写类似的东西,when(tuple.getString(0)).thenReturn(logEntries[0]).thenReturn(logEntries[1])...thenReturn(logEntries[n-1])我手动尝试了以下操作:OngoingStubbingstubbingGetStringZero=when(tuple.getString(0)).thenReturn(serviceRequestKey);OngoingStubbingstubbingGet

c++ - 使用正向链接解决 bool 表达式

有人可以借助前向链接帮助我解决bool表达式吗?好的教程也会对我有帮助。例子:A.(A+B)=AA.(A+B)=>A.A+A.B[应用分配律]A.A+A.B=>A+A.B[应用幂等律]A+A.B=>A.(1+B)A.(1+B)=>A.(1)=>A我已经付出了巨大的努力,但仍然无法做到这一点。该过程需要解析bool表达式,然后进行递归规则检查。我正在考虑创建表达式的二叉树,然后进行规则检查。我的方法正确吗?如果没有,请给我一个替代方案。 最佳答案 解决您的问题的一种方法可能是使用蛮力方法。我的意思是:尝试值A和B的所有可能组合(或者您

C++ 链接成员函数使用 .chain().method() 与 ->chained(0->method()

问题的简短版本我就是否使用./*this与->/this寻求建议,即C++(*this).chained().methods()与this->chained()->methods()。顺便说一句,目前我看到的大部分页面都推荐[[C++(*this).chained().methods()]].我只是想知道,因为你做不到My_Classobject.chained().methods();(顺便说一句,我没有测试第一部分中的示例。我在第二部分中提供了测试示例。)你必须做My_Classobject;object.chained().methods();这是一个恼人的额外行或者你可以做My

c++ - 从临时变量返回的引用是否有效?

我遇到过一种情况,能够将方法调用链接到临时变量会非常有用:draw(Quad(0,0,1,1).rotate(90));//但是,我不确定临时变量是否会保持足够长的时间以供draw()函数使用它。这样做安全吗? 最佳答案 这种特殊用途是安全的。一个临时对象一直持续到创建它的完整表达式结束†;在这里,完整表达式是整个语句,包括对draw的调用。一般来说,这种模式可能很危险。以下给出了未定义的行为:Quad&rotated=Quad(0,0,1,1).rotate(90);draw(rotated);在我看来,我更希望类型是不可变的;与

c++ - 包括类构造函数的方法链接

我正在尝试在C++中实现方法链,如果类的构造函数调用是一个单独的语句,这将非常容易,例如:Foofoo;foo.bar().baz();但是一旦构造函数调用成为方法链的一部分,编译器就会提示期待“;”代替“。”在构造函数调用之后立即:Foofoo().bar().baz();我现在想知道这在C++中是否真的可行。这是我的测试类:classFoo{public:Foo(){}Foo&bar(){return*this;}Foo&baz(){return*this;}};我还在C++(http://en.wikipedia.org/wiki/Fluent_interface#C.2B.2B