草庐IT

boost-lambda

全部标签

java - 代码在 Eclipse 中编译但不是 javac : curried lambdas with functional subinterface. 哪个是正确的?

我在Eclipse中开发了一些代码,测试成功,将其推送到我们的JenkinsCI服务器,并收到一封电子邮件,说Maven因Java编译错误而窒息。我随后隔离了问题并创建了以下显示问题的最小示例:importjava.util.List;importjava.util.function.Function;classMinimalTypeFailureExample{publicstaticvoidmain(String[]args){ListoriginalList=null;//irrelevantListresultList=transform(originalList,outer-

java - 有什么办法可以规避 lambda 表达式的类型化?

自从在Java中引入了lambda并受到arelatedquestion的启发,这是我想知道的一个问题,我想我可能会提出来,看看有没有想法。(旁注:有一个similarquestionforC#,但我没有找到用于Java的。关于“将lambda存储在变量中”的Java问题总是指type的变量是固定的——这正是我要规避的)Lambda表达式通过目标类型推断接收它们需要的类型。这一切都由编译器处理。例如,函数staticvoiduseF(Functionf){...}staticvoiduseP(Predicatep){...}都可以用相同的lambda表达式调用:useF(x->true

java - AWS Lambda invokeAsync 的替代品(已弃用)

我正在尝试从另一个JavaLambda函数中异步调用一个JavaLambda函数。我只是想一劳永逸,但是使用.invokeAsync(InvokeRequest),我必须在Future上调用.get(),这会阻止并打破“一劳永逸”的用例。这是我尝试使用的代码:privatevoidsendToDownloader(Stringpayload)throwsInterruptedException,ExecutionException{log.info(payload);InvokeRequestinvoke=newInvokeRequest();invoke.withFunctionNa

java - 有没有办法在 lambda 表达式中显式定义泛型参数类型?

我这里有一个Handler类,它应该处理特定类型的Event:publicinterfaceHandler{publicvoidhandle(Eevent);@SuppressWarnings("unchecked")publicdefaultClassgetEventType(){for(Methodmethod:this.getClass().getDeclaredMethods()){if(method.getName().equals("handle"))return(Class)method.getParameterTypes()[0];}thrownewNullPointe

java - 泛型和 lambdas - javac 和 Eclipse 编译器中的不同行为

注意:我发现多个问题指出javac之间的差异和Eclipse编译器,但据我所知,他们都在讨论其他问题。假设我们有这个方法:publicstaticvoidfoo(Suppliera,Functionb,Consumerc){c.accept(b.apply(a.get()));}我发现javac之间有不同的行为和EclipseJava编译器在编译对此方法的调用时,我不确定两者中哪一个是正确的。此方法的一个简单用法是://variant1foo(()->Optional.of("foo"),value->value.get(),value->System.out.println(valu

java - Maven/逆向 lambda : how to detect dependencies on Java 8 classes

背景:我们有一个基于maven的java项目,目标是JRE1.7,但是源代码使用了lambda,所以我们使用retrolambda来转换Java8源代码到Java7。我们也使用StreamSupport当我们需要流、函数*、可选等时向后移植库。retrolambda的使用涉及将项目的源语言和目标语言级别配置为1.8。如果不依赖于java8类或方法(如java.util.stream.*、java.util.Optional或java8类似于Collection.forEach)。如果有这样的用法,则构建通过,但在运行时失败,在Java8的JVM下运行时。问题:我的目标是在存在此类依赖项

自定义验证函数以解析std :: Chrono :: milliseconds通过Boost程序选项

我正在尝试通过Boost程序选项分析选项,该选项包含[S]或[MS]中的时间。当前,该变量使用文字进行了硬编码:std::chrono::millisecondstimeout=10s;我很乐意将其定义为配置文件中#timein[s]timeout=10但是,我无法弄清楚如何执行验证函数。这就是尝试的:structchrono_ms:publicstd::chrono::milliseconds{};voidvalidate(boost::any&v,conststd::vector&values,chrono_ms*,int){//Makesurenopreviousassignmentto

ubuntu上安装boost库为SOMEIP的X86和ARM下编译做准备(编译两种版本)

1X86架构Linux(ubuntu)操作系统上Boost库的编译安装1.1Boost源码下载1.2编译选项配置1.3编译Boost库1.4安装Boost库2Boost库的ARM架构编译1X86架构Linux(ubuntu)操作系统上Boost库的编译安装Boost库是C++拓展库,是SOMEIP源码编译所必需的库。编译Boost库时,需要根据不同的架构,选择不同的工具链和参数1.1Boost源码下载首先,Boost源码下载,Boost官网:https://www.boost.org基于此处我编译的SOMEIP源码版本,需要安装1.74版本的Boost库,下载链接:https://boosto

将lambda表达式作为回调传递到扩展方法,然后将参数传递给它

我试图理解lambda表达,扩展方法,linq和iEnumerable接口的概念。您可以猜测我几乎是CSharp的新手。在这里,我有一个包含三个对象的列表。我想在指定的索引中更改学生对象的名称属性。我编写了一个扩展方法,该方法接受回调函数。Callback函数接受整数索引和新名称字符串。它应该更改名称属性并返回对象。但是我的代码无法做到这一点,因为我不确定如何以扩展方式将参数传递给func回调。我需要一些助手来理解问题并从我的身上解决错误代码?classProgram{staticvoidMain(string[]args){Liststudents=newList();students.Ad

java - 为什么 java 8 lambdas 允许访问非最终类变量?

这个问题在这里已经有了答案:Localclasscanaccessnon-finalvariableinjava8(1个回答)Lambdas:localvariablesneedfinal,instancevariablesdon't(10个答案)关闭7年前。我理解编译器不接受以下内容的原因:classFoo{publicSuppliermakeSupplier(){Stringstr="hello";Suppliersupp=()->returnstr;//givestheexpectedcompileerrorbecause//strisnoteffectivelyfinal//(