小编Sid*_*eva的帖子

forEach循环Java 8 for Map条目集

我正在尝试将每个循环的旧常规转换为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)

java lambda java-8

72
推荐指数
3
解决办法
17万
查看次数

Java8有效地对非最终变量进行最终编译时错误

我正在尝试将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)

我收到错误:在封闭范围内定义的本地变量必须是最终的或有效的最终.

为什么会出现此错误以及如何解决?

java lambda java-8

7
推荐指数
1
解决办法
1947
查看次数

Camel - 在Spring DSL中使用属性

我正在尝试在我的流程方法中设置一些属性,但我无法弄清楚如何在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)

请提供解决方案.

spring apache-camel

2
推荐指数
1
解决办法
2269
查看次数

Java - 递归删除父路径的文件和文件夹

我正在创建一个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)

java file

1
推荐指数
2
解决办法
5332
查看次数

标签 统计

java ×3

java-8 ×2

lambda ×2

apache-camel ×1

file ×1

spring ×1