我正在尝试将每个循环的旧常规转换为java7到java8的每个循环用于映射条目集但是我收到错误.这是我要转换的代码:
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue());
}
Run Code Online (Sandbox Code Playgroud)
这是我所做的改变:
map.forEach( Map.Entry<String, String> entry -> {
System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue());
});
Run Code Online (Sandbox Code Playgroud)
我也尝试过这样做:
Map.Entry<String, String> entry;
map.forEach(entry -> {
System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue());
});
Run Code Online (Sandbox Code Playgroud)
但仍面临错误.我得到的错误是:Lambda表达式的签名与功能接口方法的签名不匹配accept(String, String)
我正在尝试将java8 forEach循环中的布尔变量更改为true,这是非final.但是我遇到了以下错误:在封闭范围内定义的局部变量必须是最终的或有效的最终.
如何解决此错误?
代码:
boolean required = false;
Run Code Online (Sandbox Code Playgroud)
这是我在函数中创建的变量.
现在,当我试图改变它时:
map.forEach((key, value) -> {
System.out.println("Key : " + key + " Value : " + value);
required = true;
});
Run Code Online (Sandbox Code Playgroud)
我收到错误:在封闭范围内定义的本地变量必须是最终的或有效的最终.
为什么会出现此错误以及如何解决?
我正在尝试在我的流程方法中设置一些属性,但我无法弄清楚如何在xml中使用这些属性,就像我可以使用语法轻松地在xml中使用标头值:$ {in.header.myKey }
这是我的代码:
<route>
<from uri="activemq:queue:start.queue" />
<to uri="stream:out" />
<process ref="jsonProcessor"></process>
<to uri="bean:validateInputIdentifiers?method=validation(${in.property.SourceMap}, ${in.property.DestinationMap})" />
</route>
Run Code Online (Sandbox Code Playgroud)
这里in.property.SourceMap是Unknown函数.什么是正确的方法?如果它类似于标题会很棒.此外,我想只使用属性而不是标题,因为标题的值可能不会在我的路由中保留.
这是流程方法代码:
@Override
public void process(Exchange exchange) throws Exception {
List<Map<String, String>> body = exchange.getIn().getBody(List.class);
Map<String, String> sourceMap = body.get(0);
Map<String, String> destinationMap = body.get(1);
exchange.setProperty("SourceMap", sourceMap);
exchange.setProperty("DestinationMap", destinationMap);
}
Run Code Online (Sandbox Code Playgroud)
请提供解决方案.
我正在创建一个java程序,它接受父路径并删除给定路径中的所有文件和文件夹.我能够删除父文件夹中另一个文件夹中的文件和文件夹的文件,但无法删除第3级的文件夹.
这是我的代码:
package com.sid.trial;
import java.util.List;
import java.io.File;
import java.util.ArrayList;
public class DeleteFilesOfDirectoryWithFilters {
public static void main(String[] args) {
String parentPath = "D:\\tester";
List<String> folderPaths = deleteFiles(parentPath);
deleteFolders(folderPaths);
}
public static void deleteFolders(List<String> folderPaths) {
for(String path : folderPaths){
File folder = new File(path);
if(folder.delete())
System.out.println("Folder "+folder.getName()+" Successfully Deleted.");
}
}
public static List<String> deleteFiles(String path){
File folder = new File(path);
File[] files = folder.listFiles();
List<String> folderPaths = new ArrayList<String>();
String folderPath = path;
if(files.length == 0){
System.out.println("Directory is …Run Code Online (Sandbox Code Playgroud)