草庐IT

lambda表达式

全部标签

java - 带有 Java 8 lambdas 和 Optional 的子类

我不明白为什么下面的代码不能编译:privateResponseEntitybuildResponse(RequestModelrequestModel,RequestModelParamConverterparamConverter,SupplierxsdSupplier,SupplierxmlTemplateSupplier){returnOptional.ofNullable(newRequestErrorHandler().validate(validator,requestModel)).map(validationErrors->newResponseEntity(vali

java - 如何使用正则表达式递归匹配模式?

字符串可以是以下之一:a(b,c)a(a(b,c),d)a(a(a(a(a(b,c),d),a(e,f)),g),h)etc我想匹配无限数量的“a(x,y)”。我怎样才能使用Regex做到这一点?这是我拥有的:\\w\\(((?:\\([a-zA-Z0-9]+\\))|(?:[a-zA-Z0-9]+)),((?:\\([a-zA-Z0-9]+\\))|(?:[a-zA-Z0-9]+))\\)它只匹配“a(x,y)”的两个递归。 最佳答案 Java的标准正则表达式库不支持递归,所以你不能用它匹配这种通用的嵌套结构。但在支持递归的风格中

java - 在 Spring 表达式语言 (SpEL) 中评估属性

我们的服务有一个根据属性文件调度的进程,读取属性refreshIntervalMillis。它的值直接注入(inject)到具有此配置的Quartz触发器中:...但是,安装此服务的管理员以小时/天为单位进行思考,因此为了让他们更轻松,我们将其更改为:将refreshIntervalMillis重命名为refreshIntervalMinutes将上面的代码更改为以下内容:p:repeatInterval="#{1000*60*T(java.lang.Integer).valueOf(@configurationProperties['garbageLevelWatcher.refre

java - 枚举中的常量表达式

有什么方法可以将枚举转换为常量表达式吗?我希望我的switch运算符在枚举的值中进行选择,但是我得到一个编译错误“case表达式必须是常量表达式”,所以我尝试在变量中声明它:finalintREG=MyEnum.REG.getIndex().intValue();switch(service.getIndex()){caseREG:但我仍然得到同样的错误。根据Oracle的文档http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.28Acompile-timeconstantexpressionisane

java - 用于在 Java 中检查带下划线的字符串名称的正则表达式

我不熟悉java中的正则表达式。如何检查文件名是否具有以下格式update_9_0_27?是不是类似于[0-9][\\_][0-9][\\_][0-100]? 最佳答案 以下应该有效:^[a-zA-Z]+_\d_\d_\d{1,2}$^和$是字符串anchor的开头,因此您不会只匹配字符串的一部分。每个\d都会匹配一个数字,最后一个\d之后的{1,2}表示“匹配一个和两个数字”(含)”。如果文件名的update部分始终不变,那么您应该使用以下内容:^update_\d_\d_\d{1,2}$请注意,在Java字符串中创建此正则表达式

java - Scala REPL 中的 Unicode 正则表达式

我想检测Unicode字母(\p{L})的单词。对于以下语句,Scala的REPL返回false,而在Java中它是true(这是正确的行为):java.util.regex.Pattern.compile("\\p{L}").matcher("ä").matches()Java和Scala都在JRE1.7中运行:System.getProperty("java.version")返回"1.7.0_60-ea"这可能是什么原因? 最佳答案 可能是解释器中使用了不兼容的字符编码。例如,这是我的输出:scala>System.getPr

java - Java 8 Lambda 表达式的 Groovy 等价物

我只用一种方法得到了这个Java接口(interface)。//JavaInterfacepublicinterfaceAuditorAware{AuditorgetCurrentAuditor();}我使用Java8Lambda表达式创建AuditorAware的实例,如下所示。//Java8LambdatocreateinstanceofAuditorAwarepublicAuditorAwarecurrentAuditor(){return()->AuditorContextHolder.getAuditor();}我正在尝试在Groovy中编写上述Java实现。我看到有很多方法

java - 正则表达式模式灾难性回溯

我在我的一个旧Java系统中使用了下面显示的正则表达式,该系统最近导致了回溯问题。回溯线程经常导致机器的CPU达到上限,直到应用程序重新启动后才返回。谁能建议一种更好的方法来重写此模式或可以帮助我这样做的工具?图案:^\[(([\p{N}]*\]\,\[[\p{N}]*)*|[\p{N}]*)\]$工作值(value)观:[1234567],[89023432],[124534543],[4564362],[1234543],[12234567],[124567],[1234567],[1234567]灾难性回溯值——如果值中有任何错误(在末尾添加额外的大括号):[1234567],[

java - 在 Java 中创建通用 lambda

在java中,您可以将类型参数添加到静态方法,以创建处理泛型的方法。你能用lambda做同样的事情吗?在我的代码中有finalprivatestaticSupplier>supplier=HashMap::new;我正在尝试像函数一样处理类型参数,但它不允许。如果我这样做:finalprivatestaticSupplier>>supplier=HashMap::new;它不接受我尝试使用它的参数。我能做什么? 最佳答案 一个解决方法可能是将方法引用包装到一个方法中,以便目标类型推导解析调用站点的类型:importjava.util

java - jsonObject as string - 搜索正则表达式以删除密码字段

我有一个json字符串,它的内容中某处有一个像这样的字符串:"password":"password2"这可以在json字符串中的任何地方,所以不要假设它在第一层。它甚至可以在jsonArray中。所以我需要搜索整个字符串并删除这个字段,或者将它的值设置为null。所以我需要能够搜索整个字符串并替换密码。例如,字符串可能如下所示:我只是想用它来记录。我的问题是,我想删除与第三方共享的密码值。我需要在java中使用正则表达式来搜索此字符串并将密码值替换为空字符串,或者我什至可以对密码进行md5。如果不存在密码字符串,它一定不会失败。我怎样才能做到这一点?所以要清楚,给定任何输入作为字符串