草庐IT

lambda_sync

全部标签

java - 如何在 Java 1.7 中编写等效的 lambda 表达式?

我在Java1.8中有以下代码。solver.plugMonitor((IMonitorSolution)()->solution.record(solver));如何在没有lambda的情况下将其转换为Java1.7代码? 最佳答案 plugMonitor方法需要一个类型为IMonitorSolution的参数,以及一些没有参数的方法YMethod:solver.plugMonitor(newIMonitorSolution(){publicvoidYMethod(){solution.record(solver);}});感谢@

java - 如何从外部 block 开始在 lambda block 中重新抛出异常?

使用以下代码,voidkey(Key)throwsSomeCheckedException{}voidsupplier(Suppliers)throwsSomeCheckedException{ofNullable(s).ifPresent(s->{//|try{//|key(s.get());//|}catch(finalSomeCheckedExceptionsce){//|//sceiscomingfromkey()method//|//HowcanIthrowsceforoutermethod?//--/}});}我如何抛出sce就像method(supplier)方法抛出它一

Java 8 : Map Lambda expression

我有一个Map>multiFieldMap我需要迭代它的值集并将值添加到multiFieldsList如下publicListfetchMultiFieldsList(){ListmultiFieldsList=newArrayList();for(Entry>entry:multiFieldMap.entrySet()){StringentityName=entry.getKey();Listids=entry.getValue();for(Objectid:ids){Objectentity=queryService.query(entityName,queryService.pr

java - 使用 lambda 覆盖默认方法

给定一个带有默认方法的简单接口(interface):privateinterfaceA{defaultvoidhello(){System.out.println("A");}}还有一个接受它实例的方法:privatestaticvoidprint(Aa){a.hello();}我可以使用匿名类覆盖它:print(newA(){@Overridepublicvoidhello(){System.out.println("OverHello");}});但如果我尝试使用lambdaprint(()->System.out.println("OverHello2"));,我会遇到编译错误

Java 8 Lambdas - 如何从流中求和和求平均值

是否可以从流中求和、平均并转换为新对象。我有一个对象publicclassFoo{privateStringcode;privatedoubleprice;....}现在我想得到这个对象列表的平均值和总和(按代码求和的价格和按代码的平均价格)foos=Arrays.asList(newFoo("MTN",200),newFoo("MTN",210),newFoo("MTN",205),newFoo("OMT",300),newFoo("OMT",320),newFoo("OMT",310),newFoo("AAA",650),newFoo("AAA",680),newFoo("AAA"

Java Lambda 表达式和日志记录

我正在阅读Log4j2的新功能,并且有一个功能可以启用“Java8lambda支持惰性日志记录”给出了两个例子第一个是不好的做法//pre-Java8styleoptimization:explicitlychecktheloglevel//tomakesuretheexpensiveOperation()methodisonlycalledifnecessaryif(logger.isTraceEnabled()){logger.trace("Somelong-runningoperationreturned{}",expensiveOperation());}第二个是好的做法//J

java - lambda 表达式中的 Else 子句

我使用以下lambda表达式迭代PDF文件。publicstaticvoidrun(Stringarg){PathrootDir=Paths.get(arg);PathMatchermatcher=FileSystems.getDefault().getPathMatcher("glob:**.pdf");Files.walk(rootDir).filter(matcher::matches).forEach(Start::modify);}privatestaticvoidmodify(Pathp){System.out.println(p.toString());}这部分.forE

java - 是否可以在 Java 8 中调试 Lambda

我刚开始玩Java8Lambda,我注意到我无法在NetBeansIDE中调试它们。如果我尝试将断点附加到以下代码,我会得到一个变量断点,这绝对不是我想要的:privateEventListenermyListener(Eventevent)->{command1;command2;//SetBreakpointherecommand3;};NetBeans将调试器附加到“myListener”变量,但我无法进入EventListener本身,所以看不到其中发生了什么。是否缺少调试信息,这是NetBeans中缺少的功能还是根本无法在Java中调试Lambda?

java - 尝试理解 Java 8 中的 lambda 和流

我正在尝试理解Java8中的Lambda。假设我有一个如下所示的Person类:publicclassPersonimplements{Stringname;GenderEnumgender;intage;Listchildren;}现在我想做的是找到所有有10岁以下child的女性。Java8之前我会这样做:ListallPersons=somePeople();ListallFemaleWithChildren=newArrayList();for(Personp:allPersons){for(Personchild:p.getChildren()){if(child.getAg

Java 8 lambdas 多个过滤器调用

使用filter(Predicatepredicate)时在Java8lambda表达式中调用,关于是否将所有Predicate放在一起,我有两种想法一次调用中的逻辑,或链接filter(Predicatepredicate)在适当的地方调用以提高可读性。我假设链接filter(Predicatepredicate)调用会很便宜,因为它们还没有遇到终止符,所以在可读性方面会出错,但我对我对Streams的了解不够自信。API以充分了解权衡是什么。借助于以下示例(考虑过于复杂的谓词),哪个实现更好:ListusingOneFilter或ListusingTwoFilters?import