相关疑难解决方法(0)

Java 8:如何使用流中的异常抛出方法?

假设我有一个类和一个方法

class A {
  void foo() throws Exception() {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我想为A一个流传递的每个实例调用foo,如:

void bar() throws Exception {
  Stream<A> as = ...
  as.forEach(a -> a.foo());
}
Run Code Online (Sandbox Code Playgroud)

问题:如何正确处理异常?代码无法在我的机器上编译,因为我没有处理foo()可能抛出的异常.在throws Exceptionbar似乎是没用在这里.这是为什么?

java unhandled-exception java-8 java-stream

154
推荐指数
7
解决办法
14万
查看次数

使用Java 8流仅列出特定深度的文件夹

考虑到Java 8中存在"新" 流API,我可以使用Files.walk迭代文件夹.如果使用此方法或者深度= 2,我怎么才能获取给定目录的子文件夹?

我目前有这个工作示例,遗憾的是还将根路径打印为所有"子文件夹".

Files.walk(Paths.get("/path/to/stuff/"))
     .forEach(f -> {
        if (Files.isDirectory(f)) {
            System.out.println(f.getName());
        }
     });
Run Code Online (Sandbox Code Playgroud)

因此,我恢复了以下方法.它将文件夹存储在内存中,然后需要处理存储的列表,我会避免使用lambdas.

File[] directories = new File("/your/path/").listFiles(File::isDirectory);
Run Code Online (Sandbox Code Playgroud)

java directory traversal java-8

5
推荐指数
3
解决办法
1291
查看次数