在Java 8中,此代码可以完美运行:
Stream<String> lines = Files.lines(outfile) {
List<String> replaced = lines
.map(line ->
line.replaceAll('date1', "$newdate1"))
.collect(Collectors.toList())
Files.write(outfile, replaced)
}
在groovy中,因为我使用的是2.6之前的groovy版本,所以没有。我无法更改它,是Katalon中使用的那个。我收到错误消息“意外令牌->”
我试图用以下两种方法将lambda函数括在方括号中,但没有用:
Stream<String> lines = Files.lines(outfile) {
List<String> replaced = lines
.map({line ->
line}.replaceAll('date1', "$newdate1"))
.collect(Collectors.toList())
Files.write(outfile, replaced)
}
和
Stream<String> lines = Files.lines(outfile) {
List<String> replaced = lines
.map({line ->
line.replaceAll('date1', "$newdate1")})
.collect(Collectors.toList())
Files.write(outfile, replaced)
}
这种包装类型的隔离/从上下文行中取出,无法识别为字符串,并且replaceAll
无法正常工作。
我不知道什么是正确的方法来使它起作用。
答案 0 :(得分:1)
您在Java和Groovy中有多余的花括号,这就是为什么它不起作用的原因
List<String> lines = Files.lines(outputFile)
.map({ line -> line.replaceAll('date1', "$newdate1") })
.collect(Collectors.toList())
Files.write(outputFile, lines)
答案 1 :(得分:0)
我终于找到了一个非常简单的解决方案(纯常规):
false