假设我有一个类和一个方法
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 Exception的bar似乎是没用在这里.这是为什么?
考虑到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)