草庐IT

lambda表达式

全部标签

java - 将字符串转换为数学表达式?

这个问题在这里已经有了答案:What'sagoodlibraryforparsingmathematicalexpressionsinjava?[closed](5个答案)Isthereaneval()functioninJava?(14个答案)关闭9年前。假设我有一个以这种方式声明的方法:publicdoubleCalc(Stringexpression){//Code}我想要一个字符串表达式"2+4-(3*4)"然后将它提供给Calc(),它应该返回它获得的值。你能否从字符串中解析出数学表达式,使其成为Java可以理解的表达式?因为通常你可以写return2+4-(3*4);但这只

java - Hibernate 和 java 8 lambda 的

自从引入Java8以来,Hibernate是否正在等待一些变化?特别地有什么方法可以在Hibernate中使用lambda编写查询吗?(即类似于.netLinq-to-SQL风格)如果没有,它什么时候来(如果它计划来)。例如像这样的东西:Useru1=dbo.Users.firstOrDefault(f->f.userId=10);Listusers=dbo.Users.selectMany(w->w.userId>5); 最佳答案 我也觉得做不到。但是我看到了Jinqhttp://www.jinq.org/他们为原始SQL查询执行

java - IdeaUIDesigner 中的 Lambda 表达式和 Java 1.8

我正在尝试将Java1.8与IdeaUIDesigner的lambda表达式一起使用,我在maven中有:org.codehaus.mojoideauidesigner-maven-pluginjavac2truetruetrue和依赖com.intellijforms_rt7.0.3当我尝试使用lambda时,它返回编译错误:Failedtoexecutegoalorg.codehaus.mojo:ideauidesigner-maven-plugin:1.0-beta-1:javac2(default)onprojectstockbox-chart:Executiondefault

java - 如何将 lambda 参数转换为可用对象?

我正在尝试将double列表流式传输到Map中,其中键是原始列表中的double值,值是一些计算值。我的代码是这样的://"values"isaListthatwaspassedinImmutableMapvalueMap=values.parallelStream().collect(Collectors.toMap(p->p,p->doThing(values,p)));privateDoubledoThing(List,Doublep){DoublecomputedValue=0.0;//DomathherewithpreturncomputedValue;}但是,Intelli

java - Spring 表达式语言和 Spring Security 3 : accessing bean reference in @PreAuthorize

我正在尝试访问@PreAuthorize注释中的bean引用,如下所示:@PreAuthorize("@testBean.getTestValue()")publicStringtestSpEL(){....}我有一个配置如下的测试bean:@Component(value="testBean")publicclassTestBean{publicbooleangetTestValue(){returntrue;}}然而,当我尝试访问testSpEL()方法时,我遇到了以下异常:Causedby:org.springframework.expression.spel.SpelEvalu

java - 查找表达式在字符串中连续和非连续出现的次数

我通过电话进行了编码面试,并被问到这个问题:GivenaString(forexample):"aksdbaalaskdhfbblajdfhaccccaoudgalsaabblisdfhcccc"和一个表达式(例如):"a+b+c-"哪里:+:meansthecharbeforeitisrepeated2times-:meansthecharbeforeitisrepeated4times求给定表达式在字符串中出现的操作数非连续和连续出现的次数。上面的表达式出现了4次:1)aksdbaalaskdhfbblajdfhaccccaoudgalsaabblisdfhcccc^^^^^^^^

java - 具有 null Long 的三元表达式中的 NullPointerException

为什么下面这行代码会产生一个NullPointerException?Longv=1==2?Long.MAX_VALUE:(Long)null;我知道正在对null执行拆箱操作,但为什么呢?注意Longv=(Long)null;不产生异常。 最佳答案 所以看起来很明显,如果条件为真,你只需要装箱,如果条件为假,则不应该装箱。但是,三元运算符表达式必须具有特定的static类型。所以我们有Long和long。JLS声明结果将是原语(同样-假设运算符是+甚至是==)。所以三元运算符将强制拆箱,然后赋值才会导致装箱。如果您要用等效的if-

java - 为什么代理 java 正则表达式会找到连字符 -

我试图找出为什么JAVA([\ud800-\udbff\udc00-\udfff])中的这个正则表达式用于replaceAll(regexp,"")还删除连字符减号以及代理字符。这个的Unicode是\u002d所以它似乎不在任何这些范围内。我可以很容易地删除此行为,添加&&[^\u002d]导致([\ud800-\udbff\udc00-\udfff&&[^\u002d]])但是,由于我不知道为什么这个\u002d被删除,我认为可能有更多未被注意的字符被删除。例子:Stringtext="A\u002dB";System.out.println(text);Stringregex="

java - 正则表达式精确匹配 n 次出现的字母和 m 次出现的数字

我必须匹配一个8个字符的字符串,它可以包含恰好2个字母(1个大写和1个小写)和恰好6个数字,但它们可以任意排列。所以,基本上:K82v6686会通过3w28E020会通过1276eQ900会失败(太长)98Y78k9k会失败(三个字母)A09B2197会失败(两个大写字母)我已经尝试使用正向前瞻来确保字符串包含数字、大写和小写字母,但我无法将它限制在特定的出现次数。我想我可以通过包含字母和数字可能出现的位置的所有可能组合来解决这个问题:(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])([A-Z][a-z][0-9]{6})|([A-Z][0-9][a-z][0-9]{

java - 使用 lambda 表达式是否可以提高性能?

我有一个需求,检查两个列表中是否有共同的元素。我想出了两种方法来做到这一点:方法01:循环privatebooleanfunc01(Listlist1,Listlist2){for(Stringgroup:list1){for(StringfuncGroup:list2){if(group.equals(funcGroup)){returntrue;}}}returnfalse;}方法02:Lambdaprivatebooleanfunc02(Listlist1,Listlist2){returnlist1.stream().filter(list2::contains).findAn